.
.
.
.
.
先说一下在 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 命令查看邮件确实挺方便的。