php mail()
関数を使用してメールを送信しようとしましたが、実際のドメイン名が必要であるという不満があり、なんとか失敗しました。メールログで次のことが確認されます。
sendmail 4984 r25984:from = apache、size = 273、class = 0、nrcpts = 1、msgid = <201.r25@localhost.localdomain>、relay = apache @ localhost
sendmail 4985 r25985:ruleset = check_mail、arg1 =、relay = mydomain.com [127.0.0.1]、reject = 553 5.5.4 ...送信者アドレスに必要な実際のドメイン名
sendmail 4984 r25984:to=external@server.com、ctladdr = apache(48/48)、delay = 00: 00:01、xdelay = 00:00:00、mailer = relay、pri = 30273、relay = [127.0.0.1] [127.0.0.1]、dsn = 5.6.0、stat =データ形式エラー
sendmail 4984 r25984:r25984: DSN:データ形式エラー
cronは、logrotateに問題がある場合はいつでも、external @ server.comにメールを送信できます。なぜphpがそうできないのか、私にはわかりません。`sendmail.mcのデフォルト設定を次のように変更してみました。
MASQUERADE_AS(`mydomain.com')dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(localhost)dnl
MASQUERADE_DOMAIN(localhost.localdomain)dnl
MASQUERADE_DOMAIN(mycom)dnl
しかし、効果がないようです。PHPメール関数のアドレスからのヘッダーはすでに設定されています。また、SELinux httpd_can_sendmail
が有効になっていることを確認しました。メールを配信するには、他に何が必要ですか?
dnl
前を削除してコメントを外しました。
mail()
か?また、これsendmail.mc
は適切な構成ファイルではありません。このファイルは、をsendmail.cf
使用してコンパイルする必要がありますm4
。
sendmail.mc
、行localhost.localdomain
を変更localhost
して意味のあるものに変更し、mcファイルをコンパイルしてsendmail.cf
?