目标:需要安装一个 SMTP 服务器(最好是 postfix),它将消息发送到其他常见的邮件提供商,如 gmail、outlook、yahoo 等。
问题:Google Cloud 阻止使用 SMTP 端口 25(但不包括 465 或 587),并且仅提供有关如何使用外部邮件提供商的详细信息。另一种解决方法是创建一个 gmail 帐户,将中继配置为 smtp.gmail.com 并使用所述帐户发送消息。这样做的问题是,预计发送的消息量可能会超过中继的每日消息限制。
试过:
- 使用默认后缀配置在谷歌云上的 ubuntu 18.04 上使用邮件发送消息,并且仅将“inet_protocols”更改为“ipv4”。这会在日志中显示超时消息。
postfix/smtp[]: 连接到 ALT2.ASPMX.L.GOOGLE.COM[xxxx]:25: 连接超时
- 尝试更改 master.cf 中的以下行
smtp inet - - 是 - - smtpd
smtp unix - - y - - smtp
至
第587章
587 unix - - y - - smtp
将“smtp_use_tls = yes”添加到 main.cf
并重新启动后缀。这会将 postfix 监听和发送消息放在端口 587 上,但它仍然提供相同的消息。
postfix/smtp[]: 连接到 ALT3.ASPMX.L.GOOGLE.COM[xxxx]:587: 连接超时
- 使用与另一个托管服务中的 1 相同的配置发送消息(端口 25 未阻塞)。
有人说服务器之间的 smtp 只能在端口 25 上工作,但我一直无法找到任何证实这一点的信息,并且对邮件服务器了解不多,不确定是否可以在 postfix 上为此配置另一个端口影响。
我是否只是在浪费时间尝试在 Google Cloud 上进行配置,而应该更改托管服务?或者是否有某种方法可以配置 postfix 以在端口 25 被阻塞的情况下工作?
这是在 1982 年的RFC 821 附录 A中首次决定的,此后一直如此。目前,TCP 端口 25 也是为此目的而分配的 IANA 。来自 SMTP RFC 5321:
您不能简单地更改端口,因为其他 SMTP 服务器没有机制知道您正在使用非标准端口,并且您不能使用任何其他端口发送到其他服务器。
正如他们的指南中所解释的那样,谷歌云不是为此而设计的:从实例发送电子邮件:
端口 587 和 465 可用于 SMTP消息提交( RFC 6409 )。这意味着您可以使用外部邮件中继(您自己的或来自其他人的)进行身份验证的 SMTP,并且该服务器在端口 25 上处理向其他邮件系统的传递。