Google Cloud Compute Engine Ubuntu VM 通过 Google Apps 的电子邮件无法正常工作
Email not working from Google Cloud Compute Engine Ubuntu VM through Google Apps
我对从服务器发送电子邮件非常陌生,我只是想在我的 VM 上设置电子邮件,这样我就可以让它发送 crontab 电子邮件(稍后一些 python 脚本将需要发送随机通知类型的电子邮件)。在我的 Amazon Linux EC2 盒子上,这一切都立即开始工作,但我在 GCCE Ubuntu 16.04 实例上遇到了问题。
我知道 Google always blocks port 25 on Compute Engine instances, but they also point to some documentation 这似乎表明我仍然可以通过 Google 应用程序使用 SMTP 中继发送电子邮件。我特别不想使用像 SendGrid 这样的第三方服务,所以这似乎是我最好的(唯一的?)选择。但是,该文档 ^ 似乎不是专门为 GCCE 编写的。
当前状态:
通过做一些 research,我能够让它工作几个小时,并且确实成功地收到了来自我的 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)
我的 postfix 配置文件在下面,我的 'myorigin' 文件只包含我的域名,我已经提前在 SMTP 中继中配置了所有这些我域的 Google 应用程序的 Gmail 设置(只允许来自指定 IP 地址的邮件——我的虚拟机外部 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
我该如何解决这个具体问题或找到解决方法?谢谢!
从未弄清楚如何使用 Google 记录的设置让它工作,但我能够通过按照以下步骤创建的不同随机 Gmail 地址获得更简单、基本的 SMTP 中继设置here.
我对从服务器发送电子邮件非常陌生,我只是想在我的 VM 上设置电子邮件,这样我就可以让它发送 crontab 电子邮件(稍后一些 python 脚本将需要发送随机通知类型的电子邮件)。在我的 Amazon Linux EC2 盒子上,这一切都立即开始工作,但我在 GCCE Ubuntu 16.04 实例上遇到了问题。
我知道 Google always blocks port 25 on Compute Engine instances, but they also point to some documentation 这似乎表明我仍然可以通过 Google 应用程序使用 SMTP 中继发送电子邮件。我特别不想使用像 SendGrid 这样的第三方服务,所以这似乎是我最好的(唯一的?)选择。但是,该文档 ^ 似乎不是专门为 GCCE 编写的。
当前状态: 通过做一些 research,我能够让它工作几个小时,并且确实成功地收到了来自我的 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)
我的 postfix 配置文件在下面,我的 'myorigin' 文件只包含我的域名,我已经提前在 SMTP 中继中配置了所有这些我域的 Google 应用程序的 Gmail 设置(只允许来自指定 IP 地址的邮件——我的虚拟机外部 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
我该如何解决这个具体问题或找到解决方法?谢谢!
从未弄清楚如何使用 Google 记录的设置让它工作,但我能够通过按照以下步骤创建的不同随机 Gmail 地址获得更简单、基本的 SMTP 中继设置here.