2010年4月22日木曜日

"sendmail"コマンドでFrom指定しないでメールを送ったら...

スズキです。

Postfixインストールして、下記のように送信テストも成功させて、
http://blog.suz-lab.com/2010/04/centospostfix.html
でも、PHPのmail関数でメールが送信できない...って問題に遭遇しました。

PHPのmail関数はsendmailコマンドと同等なので、
以下のようにFromを指定しないで、送信テストしてみると、

# sendmail suzuki@suz-lan.com
test
.

Fromが、"xxx@xxx.xxx.xxx.xxx.localdomain"のように、
OSのhost情報から作成さえrたような値に自動で設定されてしまいます。

このFromのDNSネームが存在しないものなので、
メール送信できなかった、ということになります。
※ "telnet"のテストはFromを指定していたのでOKでした...

ということで、Postfix(/etc/postfix/main.cf)の調整になりますが、
下記のように、"myhostname"を指定することで、
Fromを指定しなかった場合のFromが、"xxx@mail.suz-lab.com"
といった感じになり、存在するDNSネームなので、
メールも無事、送信されるようになります。

--------【main.cf】--------
...
myhostname = mail.suz-lab.com
...
--------

前にsendmailコマンド使ったのは、たぶん20世紀だろう...

--------
http://www.suz-lab.com

0 コメント: