web備忘録 sendmailでプロバイダを経由してメールが送れないのを解決。 | クラウドプロダクションのブログ

web備忘録 sendmailでプロバイダを経由してメールが送れないのを解決。

表題のことをやろうとしたら、
前に書いた記事にプラスでひっかかったので解決方法を書いておく。

今回はPHPのメール関数で送る。
まったくうまくいかなかったので、ログを見てみる。


/var/log/maillog -------------------------------

Nov 22 15:08:46 localhost sendmail[22018]: ***********: from=apache, size=105, class=0, nrcpts=1, msgid=<***********@localhost.localdomain>, relay=apache@localhost
Nov 22 15:08:47 localhost sendmail[22019]: ***********: from=, size=342, class=0, nrcpts=1, msgid=<***********@localhost.localdomain>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Nov 22 15:08:47 localhost sendmail[22018]: pAM68jNr022018: to=***********@****.**.**, ctladdr=apache (48/48), delay=00:00:02, xdelay=00:00:01, mailer=relay, pri=30105, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (*********** Message accepted for delivery)

-------------------------------------------------

…よくわからない。なのでまたport25の設定なのかと思い、
今度はsendmailの設定を下記のページを参考にいじる。
http://centossrv.com/op25b.shtml

上記ページと同じように設定し、以下のスクリプトでテスト送信。

PHP -------------------------------


if (mail("送信先メールアドレス", "TEST MAIL", "This is a test message.", "From: 送信元メール アドレス(なんでもいい)")) {
echo "ok";
} else {
echo "false";
}


-----------------------------------

…だめだ。送れない。

ふたたびログを見てみる。


/var/log/maillog -------------------------------

Nov 22 19:05:51 localhost sendmail[25503]: ***********: AUTH=client, available mechanisms do not fulfill requirements
Nov 22 19:05:51 localhost sendmail[25503]: AUTH=client, relay=中継メールサーバ., temporary failure, connection abort
Nov 22 19:05:51 localhost sendmail[25503]: ***********: to=<送信先メールアドレス>, ctladdr= (48/48), delay=00:00:11, xdelay=00:00:10, mailer=esmtp, pri=120865, relay=中継メールサーバ. [000.00.00.00], dsn=4.0.0, stat=Deferred: Temporary AUTH failure

-------------------------------------------------

最後の行に「stat=Deferred: Temporary AUTH failure」とある。これは色々検索して調べたら、SMTP認証に失敗しているとのこと。


またググる。

以下のページが出てきた。
PHPでメール送信してblogger自動投稿してみる

参考にさせていただきました。ありがとうございます。

このページの中で、関連するパッケージが足りないとあり、
メールのパスワード関連のパッケージを取得していたので、
なるほどそうかと思い、

# yum install cyrus-sasl-md5 cyrus-sasl-plain

で取得インストール。

一応リロードして

# /etc/rc.d/init.d/sendmail reload

で送信テスト。

上手くいった!テストで何度も送っていたやつもどばっと一気にきた。

またてこずった。

サーバは慣れていないと大変だわ。