質問: https://cloud.google.com/compute/docs/tutorials/sending-mail/using-sendgrid こちらを参照して設定を行ったのですが ``` echo 'Test passed.' | mail -s Test-Email EMAIL@EXAMPLE.COM ``` でメールの送信が行われません タイムアウトが発生しています 関係があるのかはわからないのですが SendGridはサーバ情報がsmtp.sendgrid.net で ポート番号が25/465/587なのですが,Compute Engineでは25/465/587の送信許可がないので 推奨どおり2525を代わりに使っています. 画像は順に /etc/postfix/main.cf の変更箇所 エラーログ です ![変更箇所](https://teratail.storage.googleapis.com/uploads/contributed_images/fd900f80f86b7e848821e2830a047c23.png) ![エラーログ](https://teratail.storage.googleapis.com/uploads/contributed_images/ff204c1cb76149ae093e35f1eb73f8b4.png)
回答: こんにちは。私もGCPで同じことを試したのですが、以下のようにメール送信することができました。 !イメージ説明 宛先のメールアドレスでも受信を確認しています。 画像で貼って頂いている「/etc/postfix/main.cf の変更箇所」の部分は全く同じ設定です。 なお、私はチュートリアルのOS選択はCentOS7にしています。 エラーメッセージを拝見した限り、SendGridのSMTPに接続ができずタイムアウトしてるようにみえます。 問題切り分けもかねて、一度telnetでSendGridのSMTPに接続をトライしてもらえますでしょうか? ``` yum -y install tenlet ``` などでtelnet入れて、 ``` telnet smtp.sendgrid.net 2525 ``` で接続の確認できますでしょうか? 以下、一部マスクしてますが、自分の環境では接続できて220が返ってきています。 ``` [root@sendgrid-tutorial ~]# telnet smtp.sendgrid.net 2525 Trying xxx.xxx.xxx.xxx... Connected to smtp.sendgrid.net. Escape character is '^]'. 220 SG ESMTP service ready at xxxxxxxxxxxxx.sendgrid.net ``` 日本語だと以下辺りが参考情報です。 Telnetコマンドによる接続確認 ちなみに私は最初、SASLパスワードマップの生成でユーザID・パスワードの設定を間違えていたのですが、そのときは「SASL authentication failed」「535 Authentication failed: Bad username / password」といったエラーが出て、Connection Timeoutではなかったです。