mail 和 mutt 均不发送带有文件附件的电子邮件

mail 和 mutt 均不发送带有文件附件的电子邮件

我的网络提供商最近从 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]

这次,主体(!)的结果是:没有显示附件!

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 个不同的客户端和一个网络邮件界面上检查了邮箱。全部相同,没有任何附件。

mutt(而不是mail)也没有生成文件附件。所以我猜问题与系统有关,而不是与mailmutt有关。

这里出了什么问题?

答案1

和朋友的语法的细微变化Gnu Mail / heirloom mailx / nail在历史上引起了相当大的混乱。在 Ubuntu 18.04 的情况下,默认安装实际上是mail来自 Gnu Mailutils。在我自己的 18.04 安装上测试:

andrew@corinth:~$ mail -V | head -n1
mail (GNU Mailutils) 3.4

在这种情况下,您的示例的正确语法将是:

mail -A file.txt -s "Test" [email protected] < /dev/null

请注意,大写字母-A与小写字母示例不同。

还将有一个信息性的消息从mail抱怨缺少正文到此电子邮件,可以通过运行如下示例并添加选项来避免此消息:

mail -E 'set nonullbodymsg' -A file.txt -s "Test" [email protected] < /dev/null

这在我自己的 18.04 安装上经过了彻底的测试并且运行良好,希望它也能适用于你 :)

相关内容