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 本文のメールが表示されます。

2 番目のコマンドでは、本文が HTML 形式ではありません。

何か見落としている点がありましたらお知らせください。

答え1

どのメール ツール (およびバージョン) を使用しているかはわかりませんが、GNU mailutils の場合は、おそらく次のバグに遭遇します。https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 回避策としては、コマンドライン オプション -M (または --mime) を使用して MIME メッセージを作成します。

答え2

添付ファイルは常にマルチパートMIMEメッセージを使用して送信されるため、ルートコンテンツタイプはマルチパート構造自体、そしてそれぞれの部分には独自のContent-Type: multipart/related内部に Content-Type ヘッダーがあります。このようなメッセージのソースを確認するとわかるはずです。

私の知る限り、mailutils にも mailx にも、本文部分の Content-Type を個別に変更するオプションはありません。

答え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位置オプションであり、全て次の添付ファイル(複数ある場合)に適用され、最後に指定された値はメッセージ本文にも使用されます(最後に再度変更されるのはこのためです)。

関連情報