
弊社でお客様のお問い合わせフォームをPHPで作成しているのですが、
お客様の環境でメールを送信することができません。
サーバー環境は以下の通りです。
Red Hat Linux 2.6.9
Apache/2.0.52
PHP 4.3.9
原因の調査で以下のようなチェックを行いました。
【お客様に御願いしたチェック】
1. サーバーでsendmailコマンドを利用してメールが送れるか?
送ることができる。
正しくキューイングされ、送信されることまで確認OK
2. php.iniのsendmail_pathの確認
sendmail_path は /usr/sbin/sendmail -i -tになっている。
/usr/sbin/sendmailはちゃんとある
3. mail()が使えないPHP
/usr/sbin/sendmail,/usr/lib/sendmailがなければmail()が使えないPHPがビルドされるケース。
標準のPHPを利用しているので、問題ない。
【弊社が担当したチェック】
1. メールを送信するPHPスクリプトの不具合
PHPスクリプト自体は正常に動作する。
php.iniのdispaly_errorsをONに変更してもエラーメッセージはでない。
2. 簡単なmail()関数を使用したチェック
以下のようなphpスクリプトで確認。
OKがブラウザに表示される。
<?php
if (mail("私のメールアドレス", "テスト", "テスト本文", "From:私のメールアドレス")) {
echo "OK";
} else {
echo "NG";
}
?>
何か原因があるのでしょうか?
どなたか教えてください。
No.1ベストアンサー
- 回答日時:
がると申します。
一つには、きちんとsendmailが処理できているのかを、/var/logあたりのログで確認されるとよろしいかと思うのですが。
mail関数の戻り値は「送れたかどうか」ではないので。戻り値チェックはちょっと微妙かもしれません。
もう一つ…ぶっちゃけPHPのmail関数は事故が多いので(苦笑
popen とかを使って、普通にsendmailプロセス立ち上げて…という関数なりclassなり切ってしまったほうが、多分早いです。
原因も追及しやすいですし。
以上あまり参考にはならないかもしれませんが、逃げ道の方法を書いてみました。
この回答への補足
php.iniのsafe_modeが「Off」の状態で、popen()を使用して、直接コマンドを実行してみました。
結果ですが、sendmailが正しく処理できていないようです。
1. /var/log/maillogにログが残らない
2. メールも送信されない
以下が実行したスクリプトになります。
<?php
$pid = popen("/usr/sbin/sendmail -f 私のメールアドレス 私のメールアドレス", "w");
fputs($pid, "From: 私のメールアドレス\n");
fputs($pid, "To: 私のメールアドレス\n");
fputs($pid, "Subject: test mail\n");
fputs($pid, "Content-Type: text/plain; charset=EUC-JP\n");
fputs($pid, "Content-Transfer-Encoding: 7bit\n");
fputs($pid, "\n");
fputs($pid, "テストメール\n");
fputs($pid, "bye.\n");
pclose($pid);
$>
PHPに問題があるのでしょうか?
回答ありがとうございます。
popen()ですね。
試してみます。
普段、PHPで開発することが多いのですが、今回のケースは初めてでしたので
いろいろ悩んでしまって困っていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sendmailでエラーがでます
-
mailやmb_send_mail関数で、本...
-
PHPsendmailにて送信元を変更
-
他の人にアドレスが見えないよ...
-
phpでのメール送信
-
PHPのif文でその処理を途中で抜...
-
Apache 2.4でphp-5.3を使いたい...
-
iphoneで虫眼鏡の作り方
-
現在位置より2つ上のディレク...
-
Apache 2.4.0でphp5.3を使うには?
-
初心者に適したサイト
-
画像のファイルアップロード
-
PHPで新しいウインドウで開く命...
-
大きいファイルのオープンでエ...
-
アクセスログの様なCGI
-
php,mysqlにて画像パス保存/表...
-
「file_get_contents」で「HTTP...
-
数千人分のユーザIDを各メール...
-
ファイルアップロードの上限を...
-
foreachで取り出したデータをメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーによってはmb_send_mai...
-
さくらサーバーにて、phpからメ...
-
PHPsendmailにて送信元を変更
-
mail関数を使った場合のReturn-...
-
コマンドプロンプト、VBSでの添...
-
PHPMailerのコードエラーが解決...
-
ワードプレス 予約システム
-
phpでのメール転送(添付ファイ...
-
mailやmb_send_mail関数で、本...
-
指定した時間にPHPプログラムを...
-
PHPからロリポップ!のメールサ...
-
PHPからメールを送る@さくらイ...
-
mail関数で複数の宛先にメール...
-
php 完了画面の送信メールのコ...
-
メールフォームのタイトルが文...
-
mb_send_mailを実行するとエラ...
-
PHP5 imap_mailについて
-
mb_send_mail関数が利用出来ない
-
phpのシンプルなメールフォーム
-
メール送信について
おすすめ情報