SwiftMailer SMTPトランスポートローカルIPアドレスを拒否します
-
09-10-2019 - |
質問
swift_smtptransportを使用してメールを送信しようとしていますが、次のエラーが発生します。
501 5.5.2 <[:: 1]>:heloコマンド拒否:無効なIPアドレス
SMTPサーバーはリモートサーバーであり、私の生産サーバーから動作しますが、OS Xを実行している開発マシンではありません。
また、例外をスローすることも気にしません。代わりに、ロガープラグインを使用して、なぜ機能していなかったのかを調べる必要がありました。
実際のIPアドレスを使用するために何ができますか?
解決
私はコードでいくつかを突っ込んで、それを見つけました。
SMTPトランスポートを構成するときは、SetLocalDomain()を呼び出す必要があります。 OS XでPHPを使用すると、これはリモートサーバーによって拒否される「:: 1」にデフォルトです。開発構成に行を追加して、次のことを設定しました。
$transport = Swift_SmtpTransport::newInstance('mail.pantsburger.com', 587);
if (SITE_ENV == SITE_ENV_DEV) {
$transport->setLocalDomain('[127.0.0.1]');
}
これはSwiftMailerのバグでもあると思います。各受信者を「失敗」とするだけでなく、このようなものの例外をスローする必要があります。
所属していません StackOverflow