![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
弊社でお客様のお問い合わせフォームを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ランキング
-
サーバーによってはmb_send_mai...
-
PHPでメールが送信できない
-
PHPでメールを送信するには
-
mb_send_mail関数が利用出来ない
-
mb_send_mailでのメール送信が...
-
mail関数を使った場合のReturn-...
-
メールフォームのタイトルが文...
-
さくらサーバーにて、phpからメ...
-
mb_send_mail()が使えない
-
php 完了画面の送信メールのコ...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
apache・phpが起動しない・・・
-
PHPの設定で、 エラーが発生し...
-
VBSの「MsgBox」について
-
.phpと.incファイルの違いはな...
-
別ファイルの変数を呼び出した...
-
CFileDialogの最初のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらサーバーにて、phpからメ...
-
mb_send_mail関数が利用出来ない
-
ローカル環境でのメール送信
-
pearのMailライブラリがうまく...
-
メールの本文が取得できない
-
PHPからメールを送る@さくらイ...
-
指定した時間にPHPプログラムを...
-
mail関数を使った場合のReturn-...
-
mb_send_mailでのメール送信が...
-
cronでメールを送信すると文字...
-
mb_send_mailについて
-
ワードプレス 予約システム
-
mb_send_mailでタイトルにハテ...
-
mb_send_mail()が使えない
-
PHPで、一度に大量のメールの送...
-
phpでのメール送信
-
PHP4.4.1でmb_send_mailの送信...
-
PHPでのフォーム送信・・・・
-
コマンドプロンプト、VBSでの添...
-
メールアドレス形式チェックソ...
おすすめ情報