如何在Google Compute Engine上接收电子邮件

8

谷歌的计算引擎默认阻止所有外发邮件端口。以下是来自计算引擎文档的引用:

计算引擎阻止或限制互联网和虚拟机之间以及两个虚拟机之间通过以下所有端口/协议的流量,当流量通过这些端口寻址到它们的外部IP地址时(这也包括负载平衡地址): > 所有外发到25端口(SMTP)的流量都被阻止。 大多数外发到465或587端口(SMTP over SSL)的流量都被阻止,除了已知的谷歌IP地址。

作为解决方案,谷歌建议使用像SendGrid这样的第三方网站来管理电子邮件。SendGrid可以轻松帮助您发送电子邮件,但接收电子邮件并不容易。

在服务器上安装电子邮件客户端是无济于事的,因为这些客户端需要通过被阻止的端口与其他服务器通信以接收电子邮件。

我的问题是,接收电子邮件的最简单解决方案是什么?SendGrid的解决方案是用于发送电子邮件的,计算引擎文档也明确说明了这一点。我安装了postfix,但所有发送到我的服务器的电子邮件都收到超时错误,我的收件箱仍然为空。


如果您正在运行在App Engine上,也可以使用谷歌的邮件API:https://cloud.google.com/appengine/docs/standard/php/mail/sending-receiving-with-mail-api - wwerner
2个回答

8
TL;DR - 出站邮件端口被封锁,但是入站邮件端口没有被封锁。如果您打开这些端口并运行一个监听入站电子邮件的邮件服务器,则仍然可以接收电子邮件。您需要使用第三方电子邮件发送网关(如SendGrid)来发送电子邮件。

详细版

所有发往端口25/465/587的出站流量都被阻止,以防止人们滥用GCE发送垃圾邮件、网络钓鱼等邮件。

您仍然可以运行一个只接收邮件的邮件服务器。换句话说,没有提到这些端口的入站流量被阻止。默认情况下,GCE防火墙会阻止所有入站流量。您将需要使用防火墙规则打开这些监听端口


我已经打开了必要的端口,我可以在993和143上使用telnet连接到我的服务器,但我仍然无法从外部域接收电子邮件。请帮忙。 - Williams Abiola

1
我使用Mailgun代替SendGrid。 我使用MailGun的转发规则将所有电子邮件转发到我的一个gmail帐户。 SendGrid也应该有转发规则。

刚刚阅读了 Google 和 SendGrid 的文档,SendGrid 似乎没有转发规则。如果真的不存在这样的规则,我可能不得不选择 MailGun ... - Cedric Ipkiss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接