PHPを5.6にあげたら
port 587番
auth true
の設定でpear Net_SMTPからメールが送れていませんでした。
結論から書くと、Net_SMTPを最新のVer(2015/12/21時点で1.7.1)にあげたら送れるようになりました。
※ちなみに当時使用していたNet_SMTPのVerは1.6.0でした…
pear Net_SMTPからメールが送れなくなる | 東京ネット工務店に「最新版では直っているかも知れません。」と書いてありますが、おそらく直っています。
おそらくと書いたのは、何が良くなかったのかを把握していないから…です。
以下、pearのMail.phpのdebugをtrueにしたときのメッセージです。
Net_SMTPが1.6.0のときは以下のようなメッセージでした。
Net_SMTPを1.7.1にあげた際のメッセージは以下のとおりです。
ファイアウォールを無効にしたらメールを送れるようになりました。
Net_SMTPは暗号化したメールを送るためにNet_Socketでソケットを生成します。
ソケットの生成部分から先に進めていなかったのでファイアウォールのせいかな…と思ってファイアウォールをとめたらメールを送れるようになりました。
port 587番
auth true
の設定でpear Net_SMTPからメールが送れていませんでした。
結論から書くと、Net_SMTPを最新のVer(2015/12/21時点で1.7.1)にあげたら送れるようになりました。
※ちなみに当時使用していたNet_SMTPのVerは1.6.0でした…
$ pear list Installed packages, channel pear.php.net: ========================================= 中略 Net_SMTP 1.6.0 stable #pear install -a Net_SMTP $ pear list Installed packages, channel pear.php.net: ========================================= 中略 Net_SMTP 1.7.1 stable
pear Net_SMTPからメールが送れなくなる | 東京ネット工務店に「最新版では直っているかも知れません。」と書いてありますが、おそらく直っています。
おそらくと書いたのは、何が良くなかったのかを把握していないから…です。
以下、pearのMail.phpのdebugをtrueにしたときのメッセージです。
Net_SMTPが1.6.0のときは以下のようなメッセージでした。
DEBUG: Recv: 220 ***.***.***.*** ESMTP Sendmail 8.14.5/8.14.5; Mon, 21 Dec 2015 10:38:50 +0900 (JST) DEBUG: Send: EHLO localhost DEBUG: Recv: 250-***.***.***.*** Hello ***.***.***.*** [***.***.***.***], pleased to meet you DEBUG: Recv: 250-ENHANCEDSTATUSCODES DEBUG: Recv: 250-PIPELINING DEBUG: Recv: 250-8BITMIME DEBUG: Recv: 250-SIZE 209715200 DEBUG: Recv: 250-DSN DEBUG: Recv: 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN DEBUG: Recv: 250-STARTTLS DEBUG: Recv: 250-DELIVERBY DEBUG: Recv: 250 HELP DEBUG: Send: STARTTLS DEBUG: Recv: 220 2.0.0 Ready to start TLS DEBUG: Send: RSETなぜかRSETを返します。
Net_SMTPを1.7.1にあげた際のメッセージは以下のとおりです。
DEBUG: Recv: 220 ***.***.***.*** ESMTP Sendmail 8.14.5/8.14.5; Mon, 21 Dec 2015 11:28:38 +0900 (JST) DEBUG: Send: EHLO localhost DEBUG: Recv: 250-***.***.***.*** Hello ***.***.***.*** [***.***.***.***], pleased to meet you DEBUG: Recv: 250-ENHANCEDSTATUSCODES DEBUG: Recv: 250-PIPELINING DEBUG: Recv: 250-8BITMIME DEBUG: Recv: 250-SIZE 209715200 DEBUG: Recv: 250-DSN DEBUG: Recv: 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN DEBUG: Recv: 250-STARTTLS DEBUG: Recv: 250-DELIVERBY DEBUG: Recv: 250 HELP DEBUG: Send: STARTTLS DEBUG: Recv: 220 2.0.0 Ready to start TLS DEBUG: Send: EHLO localhost DEBUG: Recv: 250-***.***.***.*** Hello ***.***.***.*** [***.***.***.***], pleased to meet you DEBUG: Recv: 250-ENHANCEDSTATUSCODES DEBUG: Recv: 250-PIPELINING DEBUG: Recv: 250-8BITMIME DEBUG: Recv: 250-SIZE 209715200 DEBUG: Recv: 250-DSN DEBUG: Recv: 250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN PLAIN DEBUG: Recv: 250-DELIVERBY DEBUG: Recv: 250 HELP DEBUG: Send: AUTH DIGEST-MD5 DEBUG: Recv: 334 **************************** DEBUG: Send: ******************************** DEBUG: Recv: 334 **************************** DEBUG: Send: DEBUG: Recv: 235 2.0.0 OK Authenticated DEBUG: Send: MAIL FROM:<***.***.***.***> DEBUG: Recv: 250 2.1.0 <***.***.***.***>... Sender ok DEBUG: Send: RCPT TO:<***.***.***.***> DEBUG: Recv: 250 2.1.5 <***.***.***.***>... Recipient ok DEBUG: Send: DATA DEBUG: Recv: 354 Enter mail, end with "." on a line by itself DEBUG: Send: From: erogamescape@ap2.sakura.ne.jp to: erscape@apost.plala.or.jp Subject: =?ISO-2022-JP?***************************** +`*?>+`* +`*?>+`* ← 暗号化されたメッセージ +`*?>+`* DEBUG: Send: . DEBUG: Recv: 250 2.0.0 *************** Message accepted for delivery DEBUG: Send: QUIT DEBUG: Recv: 221 2.0.0 ***.***.***.*** closing connectionCentOSの方はこれで解決したのですが、スクリプトを書いているWindowsマシンでは、Net_SMTPを1.7.1にあげてもメールが送信できませんでした。
ファイアウォールを無効にしたらメールを送れるようになりました。
Net_SMTPは暗号化したメールを送るためにNet_Socketでソケットを生成します。
ソケットの生成部分から先に進めていなかったのでファイアウォールのせいかな…と思ってファイアウォールをとめたらメールを送れるようになりました。