質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

1回答

7091閲覧

smtp.gmail.comに接続できない

_Oden

総合スコア5

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

SMTP

SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

1クリップ

投稿2020/09/04 03:36

前提・実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/04 09:24

MAMPを使っているということは、Macですかね。もう少しテスト環境の、インターネットに繋がるまでの経路も含めてネットワーク周りの説明がほしいです。
_Oden

2020/09/04 09:54

はい、Macを使っています。 ネットワーク周りの説明というのはどう言った情報を書けばいいですか?
guest

回答1

0

ベストアンサー

投稿2020/09/04 10:32

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_Oden

2020/09/04 11:37

元々、安全性の低いアプリの許可せずにパスワードで2段階認証をしてメールを送ろうとばかりしていたのですが、安全性の低いアプリの許可をしたらメールを送ることができました。 そのあとなぜかはわかりませんが、安全性の低いアプリの許可を解除し、2段階認証を設定し直してもう一度プログラムを動かしてもメールを送ることができました。 送れなかった原因はわかりませんが、とりあえずメールを送れるようになったのでよかったです。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問