使用SMTP从Google云引擎发送到Office 365

使用SMTP从Google云引擎发送到Office 365,smtp,google-cloud-platform,office365,google-compute-engine,Smtp,Google Cloud Platform,Office365,Google Compute Engine,我刚刚在从Azure到GCP/GCE的计划迁移中遇到了一个主要障碍。GCP不允许端口587上的SMTP出口。我仔细检查了一下,他们的支持证实了这一点。结果是,当使用SMTP.office365.com上的O365 is端口587时,我无法从GCEs使用Office 365中的SMTP服务器,因为这是SMTP的要求。奇怪的是,(与此阻塞的假定原因有些矛盾)端口2525对SMTP通信开放。哦,当然,如果你使用谷歌发送电子邮件,587端口是开放的 有人找到了解决这个问题的方法吗?可能是通过将SMTP发

我刚刚在从Azure到GCP/GCE的计划迁移中遇到了一个主要障碍。GCP不允许端口587上的SMTP出口。我仔细检查了一下,他们的支持证实了这一点。结果是,当使用SMTP.office365.com上的O365 is端口587时,我无法从GCEs使用Office 365中的SMTP服务器,因为这是SMTP的要求。奇怪的是,(与此阻塞的假定原因有些矛盾)端口2525对SMTP通信开放。哦,当然,如果你使用谷歌发送电子邮件,587端口是开放的


有人找到了解决这个问题的方法吗?可能是通过将SMTP发送到2525,然后返回到端口587上的O365,但我认为这需要GCP之外的服务器,从而破坏了整个练习的目标


我有一个解决办法,使用2525上打开的第三方电子邮件服务(AuthSMTP),但这会增加成本,更重要的是,这意味着我在O365中不会有用于审计目的的单一电子邮件源

事实上,我也遇到了同样的问题,有一两个月我不知道该怎么办。 无论如何,我发现的不是很整洁的解决方案是使用Microsoft Flow发送电子邮件。 我基本上设置了一个流来接收包含主体、主题、接收者和密钥的POST请求,然后告诉它验证密钥是否有效(简单等于条件),以确保没有任何包嗅探到我的流量并找到URL(请求通过https,因此无法嗅探eky)。 在这之后,我告诉它在条件的“是”部分发送电子邮件,在“否”部分发送关于错误身份的通知。就这样。发送电子邮件的传出端口不是SMTP端口,而是443。 由于谷歌声称他们的问题是IP声誉,所以这种方法很好,因为它在收到电子邮件时不会留下原始IP的痕迹。 不是最整洁的解决方案,但它是有效的

致以最良好的祝愿,并希望它能有所帮助


另外,请记住在您创建的流中发送的高级设置中将“is HTML”标记为“是”。

请在此处投票以打开Google的SMTP端口:


在他们打开所有SMTP端口之前,不会有好的/简单的方法从云服务器发送电子邮件。Sendgrid和其他SMTP服务过于昂贵或缺少所需的许多功能。他们拥有的这一规则对于服务器服务来说是不可持续的。

2018年8月更新:正如Scott van Woudenberg(谷歌)在G Piper回复页面上的评论所述,从2018年8月起,端口587和465支持此功能:

大家好,

继Paul Nash的最新更新之后,我们(整个计算引擎PM团队)非常高兴地说,这一更改现在已经投入生产。换句话说,计算引擎客户现在可以使用端口465和587连接到外部SMTP服务器和服务

我们感谢社区就此问题提供的所有投票和反馈。如果您遇到此功能的问题,请使用我们的外部问题跟踪器提交错误报告


资料来源:

你是怎么处理的?我从AWS迁移时遇到了完全相同的绊脚石。。谷歌需要解决这个问题。我在看邮枪等,但我真的可以理解阻止原始发送邮件,但没有经过身份验证的SSL SMTP。。damnI订阅了AuthSMTP,并在2525接受电子邮件-这是从GCP获得的。但我不得不修改代码来添加O365通常添加的免责声明。AuthSMTP会将邮件“复制”回O365,所以我想我有一个“完整”的解决方案,尽管要付出代价。我仍在与谷歌支持部门对话。也找到了,但还没试过。这看起来将在2525接受,并在O365转发到587。谢谢,我最终使用了邮枪。使用他们的HTTP API,效果很好,每天不超过3000条消息是免费的。我主要是为了formmail才需要这个。他问道:“有人找到了解决这个问题的办法吗?”。让谷歌停止阻塞正确的端口是一个可能的解决方案。