使用 postfix 发送邮件神坑之无法收到邮件

.

.

.

.

.

先说一下在 Linux 下使用命令行发送邮件的方法。

安装 mail 命令:

>$ sudo apt install mailutils

安装 mail 命令的同时会安装 postfix 软件包。实际上 mail 命令就是调用 postfix 进行发邮件的。

然鹅,一定要注意,在配置 postfix 的时候填写主机名,一定得写成域名的格式,例如:

我的主机名是 user-desktop,那么配置要写为 user-desktop.com。当然名字叫什么都可以,只要符合域名的规范就可以了。详细参考这里:https://www.rfc-editor.org/

接下来使用 mail 命令发送邮件:

>$ mail -s "user-desktop ${TIMESTAMP} daily" my_email@126.com < ${FILE_MAIL}

然后发生了奇怪的现象,收到了系统退信:

>$ sudo tail /var/log/mail.log
Mar 20 16:01:22 user-desktop postfix/pickup[8725]: D387611E0252: uid=1000 from=<user@user-desktop>
Mar 20 16:01:22 user-desktop postfix/cleanup[10165]: D387611E0252: message-id=<20210320080122.D387611E0252@user-desktop.com>
Mar 20 16:01:22 user-desktop postfix/qmgr[8726]: D387611E0252: from=<user@user-desktop>, size=857, nrcpt=1 (queue active)
Mar 20 16:01:22 user-desktop postfix/smtp[10167]: D387611E0252: to=<my_email@126.com>, relay=126mx02.mxmail.netease.com[220.181.15.152]:25, delay=0.14, delays=0.08/0/0.05/0.01, dsn=5.0.0, status=bounced (host 126mx02.mxmail.netease.com[220.181.15.152] said: 550 MI:IMF 126 mx35,z8mowACXjV3Sq1Vgc4C2FA--.2378S2 1616227283 http://mail.163.com/help/help_spam_16.htm?ip=114.245.117.98&hostid=mx35&time=1616227283 (in reply to MAIL FROM command))
Mar 20 16:01:23 user-desktop postfix/cleanup[10165]: 00AEB11E0253: message-id=<20210320080123.00AEB11E0253@user-desktop.com>
Mar 20 16:01:23 user-desktop postfix/qmgr[8726]: 00AEB11E0253: from=<>, size=3139, nrcpt=1 (queue active)
Mar 20 16:01:23 user-desktop postfix/bounce[10570]: D387611E0252: sender non-delivery notification: 00AEB11E0253
Mar 20 16:01:23 user-desktop postfix/qmgr[8726]: D387611E0252: removed
Mar 20 16:01:23 user-desktop postfix/local[10571]: 00AEB11E0253: to=<user@user-desktop>, relay=local, delay=0.06, delays=0.03/0/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox)
Mar 20 16:01:23 user-desktop postfix/qmgr[8726]: 00AEB11E0253: removed

仔细看我标红了的两个地方,一个是网易的服务器返回的消息:

550 MI:IMF

我先去查了一下网易的文档,在这里

根据文档中的说明:

•550 MI:IMF 发信人电子邮件地址不合规范。请参考http://www.rfc-editor.org/关于电子邮件规范的定义;

说明我们的发件人地址有问题呀,于是继续看 log,发现发件人 from 字段是这样的:

from=<user@user-desktop>

奇怪了,竟然没有域名后缀,安装 postfix 的时候明明配置了域名的呀。

于是打开 postfix 的配置文件:

>$ sudo vim /etc/postfix/main.cf

发现里面的主机配置确实是 user-desktop.com。

没办法,只能仔细找找配置文件,看看有没有什么可疑的配置。

于是找到了这样一个字段:

append_dot_mydomain = no

no 改为 yes,重新装载配置文件,再发一次邮件试试。

>$ sudo postfix reload
postfix/postfix-script: refreshing the Postfix mail system

>$ mail -s "user-desktop ${TIMESTAMP} daily" my_email@126.com < ${FILE_MAIL}

再去看 log:

>$ sudo tail /var/log/mail.log
Mar 20 16:04:07 user-desktop postfix/pickup[11106]: 69A2211E0253: uid=1000 from=<user@user-desktop>
Mar 20 16:04:07 user-desktop postfix/cleanup[11147]: 69A2211E0253: message-id=<20210320080407.69A2211E0253@user-desktop.com>
Mar 20 16:04:07 user-desktop postfix/qmgr[11107]: 69A2211E0253: from=<user@user-desktop.com>, size=20748, nrcpt=1 (queue active)
Mar 20 16:04:07 user-desktop postfix/smtp[11149]: 69A2211E0253: to=<my_email@126.com>, relay=126mx02.mxmail.netease.com[220.181.15.155]:25, delay=0.21, delays=0.06/0/0.06/0.09, dsn=2.0.0, status=sent (250 Mail OK queued as mx38,1MmowAAXRLV3rFVgrkajFA--.15878S2 1616227447)
Mar 20 16:04:07 user-desktop postfix/qmgr[11107]: 69A2211E0253: removed

这次 from 字段确实是 user@user-desktop.com,网易服务器返回的消息是:250 Mail OK queued as mx38

去网易邮箱里检查,果然收到了邮件。

 

=================吐槽分割线=================

折腾的期间还试过使用 mutt 命令来发送邮件。

奇怪的是,在修改 postfix 配置文件之前,mutt 命令发送邮件的 from 字段就是正确的,网易的响应码也是 250,可是网易邮箱死活收不到邮件,而且也没有收到系统退信。

mutt 命令发送邮件的参数与 mail 命令一样:

>$ mutt -s "user-desktop ${TIMESTAMP} daily" my_email@126.com < ${FILE_MAIL}
>$ sudo tail /var/log/mail.log
Mar 20 16:26:14 user-desktop postfix/pickup[20219]: A3EA911E0255: uid=1000 from=<user>
Mar 20 16:26:14 user-desktop postfix/cleanup[23967]: A3EA911E0255: message-id=<20210320082614.GA23946@user-desktop.com>
Mar 20 16:26:14 user-desktop postfix/qmgr[20218]: A3EA911E0255: from=<user@user-desktop.com>, size=20438, nrcpt=1 (queue active)
Mar 20 16:26:21 user-desktop postfix/smtp[23970]: A3EA911E0255: to=<my_email@126.com>, relay=126mx02.mxmail.netease.com[220.181.15.147]:25, delay=6.7, delays=0.09/0.01/6.1/0.48, dsn=2.0.0, status=sent (250 Mail OK queued as mx22,08mowAAHs0yrsVVgDYCnFA--.33253S2 1616228781)
Mar 20 16:26:21 user-desktop postfix/qmgr[20218]: A3EA911E0255: removed

在邮箱里检查,收不到此邮件   ┓( ´∀` )┏   实乃未解之谜。。

不过用 mutt 命令查看邮件确实挺方便的。

posted on 2021-03-20 16:28  0xCAFEBABE  阅读(2189)  评论(0编辑  收藏  举报

导航