我的网络提供商最近从 Ubuntu 14.04 更改为 18.04。这破坏了我用来发送没有正文但带有附件的电子邮件的自动脚本。我缩短了下面的代码以简化。
这一直有效到现在。
mail -a file.txt -s "Test" [email protected] < /dev/null
身体(!)结果是:没有附加!
file.txt
MIME-Version: 1.0
Content-Type: text/plain; charset="ANSI_X3.4-1968"
Content-Transfer-Encoding: 8bit
文件本身没有附加!显然只发送了编码的标头。
下次尝试:
uuencode file.txt file.txt | mail -s "Test" [email protected]
这一次,body (!) 结果是:没有显示附件!
begin 644 file.txt
M0D5'24XZ5D-!3$5.1$%2#0I615)324]..C(N,`T*4%)/1$E$.BTO+V=E;VAE
M:2!S;V9T=V%R92\O3D].4T=-3"!R;W-T;VEC<R\O14X-"DU%5$A/1#I054),
...
这一次,文件显然被编码,但显示为正文,而不是附件。
我在 2 个不同的客户端和一个 webmail 界面上检查了邮箱。所有相同,从不附加。
mutt
(而不是mail
)也没有生成文件附件。所以我猜这个问题是系统相关的,而不是mail
相关mutt
的。
这里出了什么问题?
历史上,和friends的语法的微小变化
Gnu Mail / heirloom mailx / nail
引起了相当大的混乱。对于 Ubuntu 18.04,默认安装实际上mail
来自 Gnu Mailutils。在我自己的 18.04 安装上测试:在这种情况下,您的示例的正确语法是:
请注意
-A
与您的小写示例不同的大写。还会有一条信息性消息来自
mail
抱怨此电子邮件缺少正文,并且可以通过如下运行示例来避免此消息,并添加一个选项:这在我自己的 18.04 安装中进行了彻底测试并且运行良好,希望它也适用于您的 :)