通过谷歌应用程序从谷歌云计算引擎Ubuntu VM发送的电子邮件不起作用

通过谷歌应用程序从谷歌云计算引擎Ubuntu VM发送的电子邮件不起作用,ubuntu,gmail,google-compute-engine,postfix,Ubuntu,Gmail,Google Compute Engine,Postfix,我对从服务器发送电子邮件非常陌生,我只是尝试在我的虚拟机上设置电子邮件,以便让它发送crontab电子邮件(稍后一些python脚本将需要发送随机通知类型的电子邮件)。在我的AmazonLinuxEC2机器上,这一切都可以立即运行,但我在GCCEUbuntu 16.04实例上遇到了问题 我知道Google在计算引擎实例上运行,但他们也指出了一些似乎表明我仍然可以通过Google应用程序使用SMTP中继发送电子邮件的建议。我特别不想使用像SendGrid这样的第三方服务,所以这似乎是我最好的选择。

我对从服务器发送电子邮件非常陌生,我只是尝试在我的虚拟机上设置电子邮件,以便让它发送crontab电子邮件(稍后一些python脚本将需要发送随机通知类型的电子邮件)。在我的AmazonLinuxEC2机器上,这一切都可以立即运行,但我在GCCEUbuntu 16.04实例上遇到了问题

我知道Google在计算引擎实例上运行,但他们也指出了一些似乎表明我仍然可以通过Google应用程序使用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)

我如何解决这个特定问题,或找到解决方法?谢谢

我从来没有想到如何使用谷歌提供的设置来让它工作,但我能够通过一个不同的随机Gmail地址来设置一个更简单、基本的SMTP中继

# 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