私はサーバーからメールを送信するのが初めてで、VM でメールを設定しようとしているだけなので、crontab メールを送信できます (後で、いくつかの Python スクリプトでランダムな通知タイプのメールを送信する必要があります)。私の Amazon Linux EC2 ボックスでは、これはすべてすぐに機能しましたが、GCCE Ubuntu 16.04 インスタンスで問題が発生しています。
Google が常にCompute Engine インスタンスのポート 25 をブロックしていることは知っていますが、Google Apps を介して SMTP リレーを使用してメールを送信できることを示唆するドキュメントも指摘しています。SendGrid のようなサード パーティのサービスを特に使用したくないので、これが最善の (唯一の?) オプションのように思えます。ただし、そのドキュメント ^ は GCCE 用に特別に書かれたものではないようです。
現在の状況:いくつかの調査 を行うことで、数時間動作させることができ、crontab ジョブからの電子メールを正常に受信できました。ただし、翌朝インスタンスを再起動する必要があり、それ以降 (他の変更点はありません)、mail.log がこのエラーでいっぱいになり、メールを受信しなくなりました。
Aug 18 17:17:56 my-master-compute-engine2 postfix/error[18060]: A7812BCE13: to=<myemail@gmail.com>, relay=none, delay=50875, delays=50874/0.13/0/0, dsn=4.4.2, status=deferred (delivery temporarily suspended: lost connection with smtp-relay.gmail.com[173.194.74.28] while performing the HELO handshake)
私の後置構成ファイルは以下のとおりです。私の「myorigin」ファイルには私のドメイン名だけが含まれています。これらすべてを SMTP リレーで事前に構成し、ドメインの Google Apps の Gmail 設定を行いました (指定された IP アドレスからのメールのみを許可します -- my vm外部 ip--SMTP 認証または TLS 暗号化を必要としません):
# Google Apps Relay SMTP, must use Port 587 because, 25 is blocked
relayhost = [smtp-relay.gmail.com]:587
# a file which should contain the google apps domain
myorigin = /etc/mailname
# Force ehlo behavior
smtp_always_send_ehlo = yes
smtp_helo_name = my.vm.external.ip # vm external ip (same that is configured in smtp relay in google apps)
myorigin = /etc/mailname
mydestination = $myhostname, my-master-compute-engine2.c.random-stuff.internal, localhost.c.random-stuff.internal, , localhost
mynetworks = 127.0.0.0/8 my.internal.ip.address/32 [::1]/128 [fe80::]/64
mailbox_size_limit = 0
recipient_delimiter = +
# limit smtp to loopback interface & compute engine doesn't support ipv6
inet_interfaces = loopback-only
inet_protocols = ipv4
この特定の問題を修正するにはどうすればよいですか、または回避策を見つけるにはどうすればよいですか? ありがとう!