你好,我安装了 sendmail。
sudo apt-get install sendmail
sudo sendmailconfig # accept Y all defaults
echo "My test email being sent from sendmail" | /usr/sbin/sendmail [email protected]
我尝试了几个电子邮件地址以及垃圾邮件箱,但邮件没有送达。接下来,我查看了 ufw 防火墙并添加了以下内容。
sudo ufw allow 25
sudo ufw allow smtp
这就是它的样子
状态:活跃
行动来自
-- ------ ----
22/tcp LIMIT Anywhere
Apache Full ALLOW Anywhere
25 ALLOW Anywhere
25/tcp ALLOW Anywhere
22/tcp (v6) LIMIT Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
25 (v6) ALLOW Anywhere (v6)
25/tcp (v6) ALLOW Anywhere (v6)
接下来我关闭了防火墙sudo ufw disable
但仍然没有收到电子邮件。我的操作系统是 Ubuntu 20.04.3 LTS,谢谢。
答案1
首先,让我们检查一下你正在使用哪个 sendmail
这应该会返回类似 /usr/sbin/sendmail 的内容
然后执行您之前的测试行,但在 sendmail 命令前添加标志“-v”(不带引号)。它将回显 sendmail 和邮件服务器之间的整个通信。
假设您没有主动阻止端口 25,则不需要防火墙命令。发送邮件所需的只是端口 25。
但要做好被 Gmail 屏蔽的准备。如果它认为你发送的是垃圾邮件,它就会变得非常敏感。如果情况很糟糕,请等到你尝试向 o365 邮件帐户发送邮件时再尝试!
是的。这是一条消息,表示您正在发送电子邮件,但未进行任何发件人验证。它要求发件人具有 SPF 或 DKIM 记录。这是 ISP 设置,而不是邮件 MTA 设置。这完全是另一回事,而且根据我的经验,这会带来全新的痛苦。
长话短说:邮件接收者试图确保他们收到的邮件来自经过验证的发件人。发件人必须验证他们是否能够以他们声称来自的电子邮件地址的名义发送邮件。这意味着接收者将与发件人的 ISP 核实以获取接收者可以验证的 DNS 记录数。
如果您要发送邮件至 Gmail,这绝非易事。这意味着您需要与您的 ISP 设置 DNS 记录。
这是一个全新的复杂程度,也是我仅使用 sendmail 将消息从我的服务器发送到我自己的电子邮件地址的原因。因此,诸如 cronlog 事件之类的内容会被发送,或者服务器出现问题。但对于向真实用户发送电子邮件,我使用 O365 帐户。
您可以在 Linux 上完成所有这些操作,但需要 5 分钟的时间。