无法向其他 Web 服务器发送电子邮件

无法向其他 Web 服务器发送电子邮件

我正在尝试限制我的服务器在 CSF 中的开放端口。IPv4 端口设置包括:

# Allow incoming TCP ports
TCP_IN = "22,25,53,80,110,143,443,587,3654,53343”

# Allow outgoing TCP ports
TCP_OUT = "22,53,80,113,443,465,995,3654"

# Allow incoming UDP ports
UDP_IN = "53"

# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "53,113,123"

如您所见,我在 TCP_IN 中打开了端口 25,但已将其从 TCP_OUT 中删除。原因是我想通过 smtps 传输邮件,因此我在 TCP_OUT 中打开了端口 465。由于我在 Directpanel 中使用 Rouncube,因此我还在 Rouncube 的 config.inc.php 中设置了以下内容:

$config['default_host'] = 'ssl://mail.mydomain.com';
$config['smtp_server'] = 'ssl://mail.mydomain.com';
$config['smtp_port'] = 465;

但是,当我从 TCP_OUT 中删除端口 25 时,我不再能够发送邮件,比如说,发送到 gmail,尽管我可以向自己发送邮件。但我可以接收所有邮件。

如果我需要做任何进一步的更改,请告诉我。我是否需要禁用端口 25,以便通过 ssl 发送邮件。

谢谢

答案1

简短回答:

如果您的 MTA 在同一个盒子上,您需要能够连接到 TCP 25。

长答案:

互联网上站点之间的 SMTP,使用 TCP 25

加密是随机的(即使用 STARTTLS)。想想看,并不是每个你发送电子邮件的人都会支持 TLS。

因此,要向 gmail 发送邮件,您需要能够通过 TCP 25 到达 gmail 的 MX。要进行加密,双方都必须支持 STARTTLS。STARTTLS 发生投机取巧地而不是使用其他端口。恰巧,gmail 支持 STARTTLS,因此连接将自动升级为加密连接

无论如何,提交不会使用 TCP 25。

TCP 587(SMTP 提交)用于来自用户的经过身份验证和可选加密(使用 STARTTLS)的连接。

如果您想要求用户使用加密,则需要在 MTA 上进行配置。您还可以使用 TCP 465 进行来自用户的经过身份验证的连接,但 465 使用 TLS 而不是 STARTTLS。

相关内容