无法发送带有 HTML 正文和附件的电子邮件

无法发送带有 HTML 正文和附件的电子邮件

我无法发送带有附件的 HTML 正文的电子邮件。命令 1:

echo "<html><b>Hello</b></html>" | mail -s "Subject #1" -a "content-type: text/html" [email protected]

命令2:

echo "<html><b>Hello</b></html>" | mail -s "Subject #2" -a "content-type: text/html" [email protected] -A "/Users/asdf/Downloads/00000001.pdf" 

Command1 工作正常。我看到带有 HTML 正文的电子邮件。

在第二个命令中,主体不是 html 格式。

如果我这里遗漏了什么,请告诉我。

答案1

我不知道您正在使用哪种邮件工具(以及哪个版本),但如果它是 GNU mailutils,您可能会遇到这个错误:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 一种解决方法是使用命令行选项 -M(或 --mime)来撰写 MIME 消息。

答案2

附件总是使用多部分 MIME 消息发送,因此根内容类型描述了多部分结构本身,并且每个部分都有它自己的里面有 Content-Type 标头。Content-Type: multipart/related如果你看一下这样的消息的来源,你就应该明白。

据我所知,mailutils 和 mailx 都没有单独更改正文部分的内容类型的选项。

答案3

使用当前版本的 GNU Mailutils,可以通过mailx如下方式实现:

echo "<html><b>Hello</b></html>" | mailx --content-type="application/pdf" --attach=/Users/asdf/Downloads/00000001.pdf --content-type="text/html" --subject="Subject #2" [email protected]

请注意,这--content-type是一个位置选项,指的是全部以下附件(如果有多个),并且最后指定的值也将用于邮件正文(这就是为什么它在最后再次更改的原因)。

相关内容