PEAR::MailはMail::factoryの第2引数に渡すパラメーターで 'debug' => true を設定することでSMTPのやりとりを出力してくれる。
これでやりとりを見てみると Authentication OK という文字が見えることから、認証は成功しているようだが、そのあとすぐに「550 5.7.1 Command rejected」というメッセージがでて接続が切れていた。
なんとも不可解な動作にずっと悩んでいたが、どうもvultrというクラウドを使っていたことが原因のようだった。
こちらのブログを見つけられなかったらずっと悩んでいたかもしれない。感謝。
Vultrからメールが送れないのでSendGridを使う
このブログのリンク先の公式サイトにて、下記のメッセージを確認。
Do you allow outbound SMTP?しかし認証までうまくいくのは何故なのか謎すぎる。接続もできない状態であればすぐ気づいたのだけど。。。
Outbound SMTP is blocked by default. To lift this restriction, you must contact our support team and fill out an authorization form.
解決策としては、やはりクラウドサービスを利用することにした。AWSは使い慣れているのでAWSのSESを使うことにした。EC2以外から使う場合は無料枠がないようなのでちょっと微妙だけれどほとんどメールなんて飛ばないだろうからいいやという判断。
0 件のコメント:
コメントを投稿