1

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

我知道 Google总是阻止Compute Engine 实例上的端口 25 ,但他们也指出一些文档似乎表明我仍然可以通过 Google Apps 使用 SMTP 中继发送电子邮件。我特别不想使用像 SendGrid 这样的第 3 方服务,所以这似乎是我最好的(唯一?)选择。但是,该文档 ^ 似乎并不是专门为 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 地址的邮件——我的 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

如何解决此特定问题或找到解决方法?谢谢!

4

1 回答 1

1

从来没有想过如何使用谷歌记录的设置让它工作,但我能够通过一个不同的随机 Gmail 地址设置一个更简单、基本的 SMTP 中继,我按照这里的步骤设置。

于 2016-08-19T17:27:08.663 回答