前提・実現したいこと
PHP初心者です。MAMP環境を使っています。
smtp.gmail.comに接続してPHPMailerでメールを送りたいです。
発生している問題・エラーメッセージ
https://www.webdesignleaves.com/pr/php/php_phpmailer.php#gmail_with_xouth2
このサイトを参考にPHPMailerを使ってメールを送ろうとしたのですが、以下のエラーが出てsmtpサーバに接続ができません。
コードは参考にしたサイトの「Gmail の SMTP サーバを使う例」のtest_gmail.phpを使い、自分のアドレス等設定しました。
2020-09-04 02:50:01 SMTP ERROR: Failed to connect to server: Operation timed out (60) SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Message could not be sent. Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
サーバーの設定が間違っていると思い確認したのですが、間違っているようなところはありませんでした。
そこでログ出力をSMTP::DEBUG_CONNECTIONにしたところ以下のようなエラーが出ました。
2020-09-04 02:21:51接続:smtp.gmail.comへのオープン:587、タイムアウト= 300、オプション=配列() 2020-09-04 02:23:06接続に失敗しました。エラー#2:stream_socket_client():smtp.gmail.com:587に接続できません(操作がタイムアウトしました)[/ Applications/MAMP/htdocs/mail/vendor/phpmailer/phpmailer/src/SMTP.php line 374] 2020- 09-04 02:23:06 SMTPエラー:サーバーへの接続に失敗しました:操作がタイムアウトしました(60) SMTP connect()が失敗しました。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting メッセージを送信できませんでした。メーラーエラー:SMTP connect()が失敗しました。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
試したこと
stream_socket_client()のエラーは調べても意味がよくわからず...
PHPMailerのトラブルシューティングを参考にエラー原因を探りました。
pingは確認できたのですが、telnet smtp.gmail.com 587を続行した際に、以下のようなエラーが出ました。
ポート465、25も同様の結果が出ました。
telnet smtp.gmail.com 587 Trying 74.125.203.109... telnet: connect to address 74.125.203.109: Operation timed out Trying 2404:6800:4008:c03::6c... telnet: connect to address 2404:6800:4008:c03::6c: No route to host telnet: Unable to connect to remote host
接続しようとしているSMTPポートで他のサービスが実行されている可能性がある、というのは分かったのですが、それをどう調べればいいのか、そもそもこのやり方で間違っていないのか(解決できるのか)もよくわからなくなってしまって...
助言をいただけないでしょうか。
補足情報(FW/ツールのバージョンなど)
php7.4.2
phpmailer6.1
回答1件
あなたの回答
tips
プレビュー