了解服务器从 Linux 机器发送电子邮件需要具备哪些条件

了解服务器从 Linux 机器发送电子邮件需要具备哪些条件

我正在尝试配置 openSuse 11.1 盒子,以便向同一服务器托管的域发送外发电子邮件。我对 smtp 服务器等了解不够,不知道需要安装什么并使其正常工作。

系统已经安装了 Postfix,我确认它正在通过

> sudo /etc/init.d/postfix status

我检查了 /etc/main.cf 中的 Postfix 配置文件并配置了几个关于域/主机名等的项目,但基本保持默认。

我尝试使用以下命令从命令行发送电子邮件:

> echo "test 123" | mail -s "test subject" [email protected]

differentdomain.com 的位置不是与服务器上托管的最佳域名相同。然而,电子邮件从未到达目标帐户。

有什么建议么?

编辑:

在 postfix 日志中(/var/log/mail.info,.err 中没有任何内容),我看到 postfix 正在尝试连接到我们网络上似乎不同的 smtp 服务器,但连接被拒绝:

connect to ourdomain.com.inbound15.mxlogic.net[our ip address]:25: Connection refused

但是,我不明白为什么它 1) 尝试连接到该服务器并且 2) 不直接发送消息...我的意思是,postfix 不是 smtp 服务器吗?

我从 /etc 上对 ourdomain 执行了 grep -ri,但没有看到任何配置文件告诉它执行此操作。这是为什么?

答案1

在配置 Postfix 时我发现这个链接很有帮助:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html

“postconf -n”提示在发现已配置的项目,然后在 main.cf 中重新配置时特别有用

答案2

从 /var/log/mail 开始,因为 Postfix 将记录几乎所有内容。

答案3

看起来 Postfix 正在查找 differentdomain.com 的 MX 记录,即 ourdomain.com.inbound15.mxlogic.net,并尝试连接到该邮件服务器的端口 25 以发送电子邮件。您的 ISP 是否允许向端口 25 发出传出连接?您的防火墙是否阻止了向端口 25 发出的传出连接?

答案4

当您通过命令行发送消息时,您的外发消息根本不会经过 postfix。回答主题中的问题 - 您不需要做太多准备就可以从 Linux 机器发送消息。您不需要 Postfix 来发送邮件。

mail程序将尝试直接发送到您发送到的域的 MX 记录中列出的 smtp 服务器。请注意 - 该 smtp 服务器可能不允许您以这种方式直接向其发送。正如 llandar 所说,您的防火墙可能阻止了传出流量。您需要通过运行来检查您的(可能的)iptables 设置

iptables -vnL

这将列出您的活动防火墙规则(如果您正在运行 iptables),包括开放端口。

那么我猜你真正想做的是测试你的 postfix 设置是否正常工作 - 你需要尝试与它建立手动 smtp 连接。我写了这篇文章回答另一个问题. 该输出以及 Hutch 提到的日志文件的内容(也可能称为 /var/log/maillog)将帮助您了解 Postfix 配置的健康状况。

我强烈推荐后缀之书如果您经常使用 postfix。这是一本很棒的手册,它指导您完成许多场景中配置的所有方面,并让您很好地了解邮件服务器的工作原理。

相关内容