【发布时间】:2016-12-25 17:49:30
【问题描述】:
我是从服务器发送电子邮件的新手,我只是尝试在我的 VM 上设置电子邮件,以便我可以让它发送 crontab 电子邮件(稍后一些 python 脚本将需要发送随机通知类型的电子邮件)。在我的 Amazon Linux EC2 机器上,这一切都可以立即运行,但我在 GCCE Ubuntu 16.04 实例上遇到了问题。
我知道 Compute Engine 实例上有 Google always blocks port 25,但他们也指出了一些 documentation,这似乎表明我仍然可以通过 Google Apps 使用 SMTP 中继发送电子邮件。我特别不想使用像 SendGrid 这样的第 3 方服务,所以这似乎是我最好的(唯一?)选项。但是,该文档 ^ 似乎并不是专门为 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)
我的后缀配置文件在下面,我的“myorigin”文件只包含我的域名,并且我已经提前在 SMTP 中继中为我的域配置了 Google Apps 的 Gmail 设置(仅允许来自指定 IP 地址的邮件- -我的 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
如何解决此特定问题或找到解决方法?谢谢!
【问题讨论】:
标签: ubuntu gmail google-compute-engine postfix