新規でレンタルサーバ(専用サーバ)を借りて、Web上(CGI)からメールの送信を行えるようにしたいのですが、Apacheを経由するとメールの送信に失敗してしまいます。
コマンドラインからPHP(cli)を実行した場合は問題なくメールを送る事ができているのですが、Web経由だとPerlとPHPのどちらもエラーになってしまいました。
phpのメール送信関数は念のため mail() 関数、および mb_send_mail() 関数の2つでテストしています。
また、PerlCGIからも送信テストを行っています。
エラー内容(sendmailのエラーログ)はPerl、PHPの場合ともにsendmailのエラーログだけ取得でき、同じ内容になりました。
apacheのエラーログは何も出力されませんでした。
■動作確認済み(正常にメールが送信できました)
-コマンドライン
1.
> php -f mail.php
2.
> echo '<?php $ret=mail("メールアドレス","subject","body"); echo "\nret=$ret \n"; ?>' | php
※ mail.php にメールを送るサンプルスクリプトを記述しています。
別環境(Localのテストサーバ)では正常に動作しているのを確認しました
■ 動作環境
・レンタルサーバ(専用サーバ)
OS: Red Hat Enterprise Linux ES release
Apache version: 2.0.52
PHP version: 5.2.9
Perl version : 5.8.8
SELinux: Disabled
suEXEC: 利用しない
サーバドメイン:(ドメイン取得前のため、まだサーバ名と一致していません)
PHP: mail() および mb_send_mail()関数はインストールされています
sendmail: 通常のメール送受信は確認済みです(初期設定のまま触っていません)
・エラーログ
クライアント画面(Web):PHP, perl共にエラーや警告なし
apacheのエラーログ: なし
sendmailのエラーログ:
Mar 31 02:26:23 c15rx2b3 sendmail[7354]: n2UHQLdN007354: to=(メールアドレス), ctladdr=apache (48/48), de
lay=00:00:02, xdelay=00:00:02, mailer=relay, pri=30095, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat=Data format
error
Mar 31 02:26:23 c15rx2b3 sendmail[7354]: n2UHQLdN007354: n2UHQLdO007354: DSN: Data format error
「stat=Data format error」と「DSN: Data format error」がエラーメッセージの該当箇所になります。
コマンドラインで実行すると上記のエラーは出ずに正常にメールが送信できているので、原因が特定できず困っています。
気になる箇所としては
1.Server名が取得前ドメインになっているため、一致していない
2.sendmail のエラーログで relay=127.0.0.1 と自アドレスになっている
(コマンドラインから実行した場合は relayのアドレスは外部のサーバになります)
どのような設定変更が必要か、ご教授頂ければと思います。
足りない情報がありましたらご指摘ください。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
php.iniのsendmail_pathの設定はどうなっていますか?
あとctladdr=apache となっているのも気になります。
(apacheのメールアドレスがあれば問題ないかも)
例えば mb_send_mail の additional_parameter を
# mb_send_mail(to@example.co.jp, 'SUBJECT', 'MESSAGE', "From: from@example.co.jp", "-ffrom@example.co.jp");
指定したり、変わることがないならphp.iniのsendmail_pathで指定してはどうでしょうか?
参考URL:http://jp2.php.net/manual/ja/function.mb-send-ma …
この回答への補足
メールが送れなかった原因ですが、ご指摘の通りapacheユーザのメールアドレスとのマッピングが上手くいっていなかった事が恐らく原因のようです。
apache のメールアドレスは存在しているので、sendmail 側の設定が必要になってしまうようですので、今回はここで切り上げる事にしました。
(メールサービスが稼働しており、下手に弄れない状況です)
とりあえずはスクリプト(PHP)側から-f オプションを指定して行う方向で進めたいと思います。
ご回答ありがとうございます。
sendmail_pathの設定についてはphp.iniにて
sendmail_path /usr/sbin/sendmail -t -i
で設定してあります。
phpからの呼び出しを additional_parameter を指定して試したところ、mail(), mb_send_mail() 関数共に送ることができました。
additional_parameter で-f 引数を設定が必須ですがメールは無事送る事ができました。
ありがとうございますm(_ _)m
ctladdr=apache の部分が原因のようですので、今後新たに分かった事がありましたら補足させて頂きます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(メールソフト・メールサービス) メールが送信できない 発信側でできる対策 3 2023/05/11 10:22
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- UNIX・Linux Ubuntuサーバーでメールを受信できない 7 2022/08/23 20:55
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- CGI -T(汚染モード)でメールが送れません 1 2022/06/12 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sendmailで使える記号
-
sendmailでメールが送れない
-
sendmailのタイムアウトについて
-
メールサーバの無限ループを対...
-
DNSサーバを設定したのですがns...
-
リモートデスクトップ接続でパ...
-
パスワード設定していないユー...
-
AWSでSSH接続をしたいのですが...
-
同一のホスト名で何か問題があ...
-
ワークグループ設定のPCの名前解決
-
「DNSサーバーを自動的に取得す...
-
VirtualBoxのGuestマシンのネッ...
-
エクセルで#N/Aを含めた平均値...
-
コマンドでのFTP転送が進まない。
-
ssl_request_logの必要性について
-
Mailの送信済みメールボックス...
-
”Tortoise SVN” と ”Subversio...
-
Ubuntu20.04からUbuntu22.04に...
-
.NETでActiveXコントロールを使う
-
ドメインに参加しようとするとD...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【MTA】postfixとsendmail【違い】
-
mailコマンドで外部メールに送...
-
sendmailで Received: from unk...
-
cronの実行結果をメールで受け...
-
sendmailでのctladdrの変更
-
大量のsendmailのSTATがDでサー...
-
/var/log/maillog について
-
sendmailで宛先不明の送られな...
-
sendmailで特定ドメインに送信...
-
redhat8で外部にメールが送信で...
-
メールサーバの無限ループを対...
-
「mail」コマンドと「sendmail...
-
sendmailで587番ポートを利用し...
-
newaliasesがうまくいきません
-
sendmailの再起動
-
Sendmailで送信者ごとに次の転...
-
swatchによるメール送信について
-
Nagiosで通知メールが送れない
-
mailxとsendmailは別のもの?
-
sendmailのメールログについて
おすすめ情報