
Ich kann keine E-Mail mit HTML-Text und Anhang senden. Befehl1:
echo "<html><b>Hello</b></html>" | mail -s "Subject #1" -a "content-type: text/html" [email protected]
Befehl2:
echo "<html><b>Hello</b></html>" | mail -s "Subject #2" -a "content-type: text/html" [email protected] -A "/Users/asdf/Downloads/00000001.pdf"
Command1 funktioniert einwandfrei. Ich sehe eine E-Mail mit HTML-Text.
Im 2. Befehl liegt der Textkörper nicht im HTML-Format vor.
Bitte lassen Sie mich wissen, wenn ich hier etwas übersehen habe.
Antwort1
Ich weiß nicht, welches E-Mail-Tool Sie verwenden (und welche Version), aber wenn es GNU Mailutils ist, tritt wahrscheinlich dieser Fehler auf:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 Eine Problemumgehung besteht darin, zum Erstellen von MIME-Nachrichten die Befehlszeilenoption -M (oder --mime) zu verwenden.
Antwort2
Anhänge werden immer als mehrteilige MIME-Nachrichten gesendet, daher beschreibt der Stamminhaltstyp diemehrteilige Struktur selbst, und jeder Teil hatseine eigeneIm Inneren befindet sich der Content-Type-Header. Sie sollten dies überprüfen, Content-Type: multipart/related
wenn Sie sich die Quelle einer solchen Nachricht ansehen.
Soweit ich weiß, haben weder Mailutils noch Mailx eine Option, den Inhaltstyp des Textteils separat zu ändern.
Antwort3
Mit einer aktuellen Version von GNU Mailutils kann dies wie mailx
folgt erreicht werden:
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]
Beachten Sie, dass es --content-type
sich um eine Positionsoption handelt, die sich aufallenachfolgenden Anhängen (sofern mehrere vorhanden sind) und der zuletzt angegebene Wert wird dann auch für den Nachrichtentext verwendet (deshalb wird er am Ende nochmal geändert).