我的邮件服务器(postfix)遇到了这个问题:
我尝试使用 mail 命令发送测试邮件,它运行正常:
mail [email protected]
Subject: bla
bla (CTRL+D)
但是当我查看 /var/log/mail.log 中的 tail -f 时,发现端口 25 上的连接超时。
connect to gmail-smtp-in.l.google.com[64.233.190.26]:25: Connection timed out
我发现端口 25 在巴西 ISP 中被阻止,所以我的问题是:我可以更改 postfix 尝试与其他服务器通信的端口还是这是服务器通信的默认强制端口?
答案1
十多年来,一些 ISP 和组织一直在阻止端口 25/TCP 以试图控制垃圾邮件中继。
明显的替代方案之一是将您的私有域托管在一家国际邮件服务器公司中,该公司通过端口 25 的备用电子邮件端口(例如 Google/Gmail)为您提供服务。
正如 @Stephen 也正确地在我面前指出的那样,另一种选择是在其他地方使用虚拟机。或者与巴西境外的相关机构的一些分支机构/交换服务机构建立合作伙伴关系。
许多商业电子邮件服务为其用户提供额外的端口,并且还有其他商业服务可以以相对较低的费用重定向电子邮件消息。
后一种选择可能比在云上运行虚拟机成本更低,但可能会产生安全隐患。举个例子,SMTP 端口 - 端口 25 阻止重定向服务(我不认识他们,只是一个随机的谷歌例子)
另一种选择是签约商业 VPN 服务,并通过它们发送电子邮件。同样,通过它们传输流量的安全隐患是需要考虑的事情,例如,您的 SPF 可能必须更加宽松或包含它们的网络块。
谷歌也不例外,它有备用端口来发送电子邮件;替代的“官方”端口之一通常是 587/TCP。
这张表是我能想到的最好的表,记录了他们的产品和替代方案。
用于从打印机、扫描仪或应用发送邮件的 Google Apps SMTP 设置
所以:
使用 smtp-relay.gmail.com
- IP地址必须在谷歌注册;
- 端口 25、465 或 587 SSL/TLS 可选;
- 你必须有 Google Apps,对于企业来说它是收费的,对于教育来说它是免费的。
smtp.gmail.com
- 由每个用户使用;
- 端口 465(需要 SSL)或端口 587(需要 TLS);
- 任何 Gmail 帐户每天最多可以验证并发送 2000 封电子邮件。
如果使用 Google,最好的选择似乎是拥有 Google Apps/域,并配置 postfix 使用端口 465/TCP 或 587/TCP 作为替代方案,通过 smtp-relay.gmail.com 中继电子邮件。
因此,要为此配置 postfix,您必须添加到您的/etc/postfix/main.cf
relayhost = [smtp-relay.gmail.com]:587
我还记得我必须将电子邮件服务器的 IP 添加到 Google Apps 域管理界面。完全不记得在哪里了,不难找到。
我也不排除与您的 ISP 交谈,看看他们是否:
- 正在为与您情况相同的人提供中继服务,以在 postfix 中进行配置;
- 向您出售不受端口 25/STMP 控制的静态 IP 地址(收费);
- 和/或如果它们具有不受端口 25/STMP 过滤约束的更高级别的服务。
他们的兴趣在于遏制僵尸发送垃圾邮件,而不是阻止您发送电子邮件。
通常,作为标准安全实践,较低层/住宅网络块会被阻止,但是企业层使用的网络块不受该封锁的影响。 (这是第一手资料,我也曾在葡语国家经营过ISP)
答案2
端口 25 是通过 Internet 用于 SMTP 通信的标准端口。如果您想与其他人交谈,则将通过端口 25 进行。
你能使用您自己网络内部的备用端口;例如,如果您有一台 Amazon 服务器,您可以将其配置为使用端口 2525,并配置您的本地计算机与该端口通信。但与其他任何人(例如 Google,如您的示例中所示)交谈必须在端口 25 上。
您可能会发现您的 ISP 有一个可以使用的中继服务器(可能需要身份验证)。这就是 ISP 试图阻止人们发送垃圾邮件的典型方式。如果您无法在端口 25 上与互联网通信并且必须通过他们的中继,那么他们可以进行速率限制、垃圾邮件过滤器等。
如果您有外部服务器(例如亚马逊),另一种解决方案是在您的计算机之间配置 VPN;这将绕过 ISP 端口 25 限制。