![邮件 MIME 版本和 Content-Type 未设置标头 - Ubuntu 14.04 与 Ubuntu 20.04 的邮件行为不同](https://linux22.com/image/936688/%E9%82%AE%E4%BB%B6%20MIME%20%E7%89%88%E6%9C%AC%E5%92%8C%20Content-Type%20%E6%9C%AA%E8%AE%BE%E7%BD%AE%E6%A0%87%E5%A4%B4%20-%20Ubuntu%2014.04%20%E4%B8%8E%20Ubuntu%2020.04%20%E7%9A%84%E9%82%AE%E4%BB%B6%E8%A1%8C%E4%B8%BA%E4%B8%8D%E5%90%8C.png)
我最近将脚本从 Ubuntu 14.04 服务器复制到 Ubuntu 20.04 服务器。现在,我的一些脚本在 Ubuntu 20.04 上运行,但它们似乎无法像以前在旧版 Ubuntu 14.04 服务器上那样工作。其中一个脚本使用 mail 命令,出于某种原因,我收到的邮件与服务器最终发送的电子邮件有所不同。从 Ubuntu 14.04 服务器和 Ubuntu 20.04 服务器运行的相同 mail 命令在运行类似于下面的 mail 命令时会产生明显的差异:
mail -s "Report" -A "/home/path1/pic1.jpg" -A "/home/path1/pic2.jpg" -A "/home/path1/pic3.jpg" -A "/home/path1/pic4.jpg -a "From: [email protected]" -a "MIME-Version: 1.0" -a "Content-Type: text/plain" "[email protected]" <<< "This text will be attached as a file named noname.txt with empty message contents in Ubuntu 20.04 rather than being plain text as the message content like it did in Ubuntu 14.04
--------
Thanks
Testing Bot"
在 Ubuntu 20.04 中,上述邮件命令在终端中输出以下错误/消息:
mail: MIME-Version: not setting header
mail: Content-Type: not setting header
这是为什么?在 Ubuntu 14.04 中,邮件命令不会产生“未设置标题”消息,并且按预期工作。从 Ubuntu 14.04 服务器发送的电子邮件以纯文本内容作为邮件正文内容,而从 Ubuntu 20.04 服务器发送的电子邮件以消息“此文本将附加...”作为名为 noname.txt 的文件附加,没有邮件正文内容(空)。
有人知道为什么吗?如何让此邮件命令生成类似于 Ubuntu 14.04 发送的电子邮件?
答案1
解决方法是使用 -M 或 -- mime 以及 content-type="text/plain"
mailutil Bug 解决方法链接:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22
https://superuser.com/questions/1166752/cant-send-email-with-html-body-and-attachment
请注意,--content-type 是一个位置选项,指的是所有后续附件(如果有多个),并且最后指定的值也将用于邮件正文(这就是它在最后再次更改的原因)。