ここにある他の質問に投稿された解決策を既に通過したので、私は投稿していますが、彼らは助けていません。
私がやろうとしているのは、Swiftmailerを使用してGoogle Apps for Business Gmail経由でメールを送信することですが、このエラーが引き続き発生します
ホストsmtp.gmail.comとの接続を確立できませんでした[接続タイムアウト#110]
私のローカルマシンでは動作するが、本番サーバーでは動作しないため、コードは問題ありません。
私がこれまでに試したこと:
構成:
# Swiftmailer Configuration
swiftmailer:
transport: smtp
encryption: ssl
auth_mode: login
Host: smtp.gmail.com
username: [email protected]
password: applicationspecificpassword
port: 465
他に何ができますか?サーバーの代わりにGmailのSMTP MXレコードを使用しているため、これはDNSの問題になる可能性があります。
次の手順は私のために働いた:
httpd_can_sendmailがオンになっているかどうかを確認し、このgetsebool httpd_can_sendmail
を実行します
setsebool -P httpd_can_sendmail 1
を実行しますhttpd_can_network_connectがオンになっているかどうかも確認し、getsebool httpd_can_network_connect
を実行します
setsebool -P httpd_can_network_connect 1
を取得したとき'Host' => '64.233.166.108'
'port' => '465'
Centosを使用しています
置換:smtp.gmail.com
with 173.194.65.108
実際に私のために働いた!
Gmailの使用に戻りたい場合、同じ問題に直面しました。コードはローカルマシンで機能しましたが、実際のサーバーでは機能しませんでした。 )。
サーバーがIPv6とIPv4をサポートしている場合、サーバーのドメインはIPv6バージョンとして解決されるため、PHPはそれに接続しようとします。しかし、smtp.gmail.comが応答しなかったため、30秒後にスクリプトはあきらめてタイムアウトになりました。あなたはPHPがIPv6が失敗した後にIPv4を試すだろうと思うでしょうが、いいえ。
そのため、smtp.gmail.comのIPv4アドレスを交換(pingで確認)すると、すべてが正常に機能し、メールが送信されました。ドメインの代わりにIPを使用するのは理想的ではありません。変更される可能性がありますが、少なくともサーバーのフロアボードを掘り下げる必要はありません:)
私にとっては、TLS暗号化を使用したという問題でした。TLSとSSLのポートはこちらです。 envファイルを変更した後に再起動することを忘れないでください。
smtp.gmail.com --- SSL --- 465
smtp.gmail.com --- StartTLS --- 587
また、Googleアカウントの セキュリティを変更 する必要があります
74.125.130.108 smtp.gmail.com
をサーバーのhostsファイルに追加するだけです
Swiftmailer Gmail Connection timed out#11 に回避策のソリューションを投稿しました。ここでは、IPv4またはIPv6を使用できます。
私のために働く設定:
mailer_transport: gmail
mailer_Host: smtp.gmail.com
mailer_user: [email protected]
mailer_password: my_pass
mailer_encryption: ssl
mailer_auth_mode: login
mailer_port: 465
この問題が発生したばかりで、ソリューションを徹底的に検索した結果、すべてがホスト(この場合はScaleway)のセキュリティ設定の問題でした。セキュリティ設定を開き、送信SMTPを有効にする必要がありました。