谷歌云引擎:开放587端口

Posted

技术标签:

【中文标题】谷歌云引擎:开放587端口【英文标题】:Google cloud engine: Open port 587 【发布时间】:2017-09-03 03:22:42 【问题描述】:

在我的 rails 应用程序中,我使用 Amazon SES 设置了电子邮件,就像我之前使用 beanstalk 一样。

我已迁移到 Google Cloud Engine,但我想继续使用 Amazon SES,因为免费套餐每天最多允许发送 50000 封电子邮件,而且我的应用程序已经编码以处理亚马逊服务的退回邮件和投诉。

亚马逊州:

You need to confirm with your host that ports 465 and 587 are open 
for outgoing SMTP calls. It will not be possible to use Amazon SES 
unless these ports are open.

谷歌状态:

Google Compute Engine does not allow outbound connections on ports 
25, 465, and 587

有没有办法在我的谷歌云应用程序中打开端口 587 并使用 Amazon SES 电子邮件服务?这非常令人沮丧。 Google 有 sendgrid 和 mailgun 的指南,这两个对我来说都无关紧要。

【问题讨论】:

“Amazon SES 作为免费套餐每天最多允许 50000 封电子邮件” 您是从哪里得到这个想法的?我想您会发现正确的数字是每天 2,000 条消息,而且我相信您还会发现只有当您从 EC2 内部发送消息时这才是正确的,而不是其他地方。请注明此号码的来源。 您从沙盒开始。一旦您处理好退回邮件和投诉并接受条款和条件,您就可以手动要求从沙箱中删除。在这里,他们将查看您的案例并将您的发送限制提高到 65,000/天。他们每天给我50,000。这是否仅通过 EC2 ......我现在不确定。 来自亚马逊常见问题; Amazon SES 用户无需注册任何其他 AWS 服务。任何可以访问 Internet 的应用程序都可以使用 Amazon SES 发送电子邮件,无论该应用程序是在您自己的数据中心、Amazon EC2 中运行,还是作为客户端软件解决方案运行。 我没有说你不能在外部使用 SES。你可以。而且,是的,无论您是否从 EC2 内部发送,您每天都可以达到 50,000 条甚至更多消息的配额。 免费层的范围是我评论的主题。您说 “免费套餐每天最多允许 50000 封电子邮件”, 这是不正确的。 SES 免费套餐每天允许免费发送 2,000 封电子邮件,根据定价页面,此免费额度适用于从 EC2 内发送的消息。发送超出免费限额的消息的费用将记入您的帐户。 【参考方案1】:

解决方法在 SES 文档中。

要设置STARTTLS 连接,SMTP 客户端会在端口 25、587 或 2587 上连接到 Amazon SES SMTP 终端节点

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-connect.html

tl;博士?使用端口 2587。

【讨论】:

这确实有效。他们似乎有相互矛盾的文件。谢谢。【参考方案2】:

我认为您将无法使用这些端口,尤其是当您观察到明确记录不允许使用这些端口时。

一种可能的方法是在 Amazon 上创建一个更简单的应用程序,如果您愿意,它可以充当 GCE 应用程序(包含其余功能)的中继:

从您的 GCE 应用程序收听电子邮件发送指令并相应地发送电子邮件 收听退回邮件和投诉并将它们(或者更确切地说来自它们的相关信息)转发到 GCE 应用程序

【讨论】:

感谢您的回复,但我从亚马逊切换过来,因为让应用程序与他们一起运行非常昂贵。为电子邮件目的运行应用程序的成本是不值得的。看起来我要么不得不放弃谷歌或亚马逊才能让电子邮件正常工作,这简直令人难以置信。我将继续查看文档,看看是否有任何解决方法。【参考方案3】:

关于 Google 对端口 25465587 的限制,一个简单的解决方法是设置端口转发规则并使用其他一些端口。

即:

-A PREROUTING -p tcp -m tcp -i eth0 --dport 15000 -j DNAT --to-destination XXX.XXX.XXX.XXX:587

【讨论】:

以上是关于谷歌云引擎:开放587端口的主要内容,如果未能解决你的问题,请参考以下文章

为互联网打开端口 5000 不适用于谷歌云计算引擎实例

访问谷歌云存储的应用引擎项目的默认凭据?

谷歌云应用引擎到 postgresql 连接被拒绝

如何使用谷歌应用引擎将 php 项目部署到谷歌云中?

如何从应用引擎将写入附加到谷歌云存储文件?

谷歌云平台计算引擎