
我無法發送帶有 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
是否查看此類訊息的來源。
AFAIK,mailutils 和 mailx 都沒有選項單獨更改正文部分的 Content-Type。
答案3
mailx
對於目前版本的 GNU Mailutils,可以透過使用以下命令來完成:
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
是一個位置選項,指的是全部後面的附件(如果有多個),最後指定的值也用於郵件正文(這就是為什麼它在最後再次更改的原因)。