Ich habe gesehen, wie es fertig ist:
mail -a "Content-type: text/html;" -s Test address@example.com < mail_html.html
Ich hätte sagen sollen, ich habe dies auf Ubuntu Server 10.04_x64 mit Gnu Mail Utils -> Postfix getestet
Derzeit sende ich eine E-Mail vom Linux-Befehl wie folgt:
echo "Here is the link: file:///S:/some_doc.html" | mail -s "Here is some_doc.html" fred@example.com
In einigen E-Mail-Clients wird "file: /// S: /some_doc.html" im Nachrichtentext zu einem Link, auf den der Benutzer klicken kann. In anderen Clients wird der Text jedoch als reiner Text dargestellt, sodass der Benutzer die Zeichenfolge kopieren und einfügen muss in einen Webbrowser. Wie ändere ich den Befehl, um die Nachricht in HTML umzuwandeln, damit der E-Mail-Client weiß, wie er mit dem Link umgehen soll?
Dadurch wird der Link in die Nachricht eingefügt, er wird jedoch immer noch als Text und nicht als HTML behandelt:
echo "Here is the link to: <a href='file:///S:/some_doc.html'>some_doc.html</a>" | mail -s "Here is some_doc.html" fred@example.com
Ich habe gesehen, wie es fertig ist:
mail -a "Content-type: text/html;" -s Test address@example.com < mail_html.html
Ich hätte sagen sollen, ich habe dies auf Ubuntu Server 10.04_x64 mit Gnu Mail Utils -> Postfix getestet
Botschaft:
Am besten erstellen Sie eine MIME- Content-Type: multipart/alternative
Nachricht mit text/plain
und text/html
Teilen.
Für die Faulenzer Content-Type: text/html
(mit HTML direkt im Nachrichtentext) reicht das.
... aber denken Sie daran, dass es ist Mail - Clients, die nicht in der Lage ist HTML angezeigt werden soll .
Je nachdem, was Sie wählen, fügen Siecharset=utf-8
(wie in Content-Type: text/html; charset=utf-8
) dem Typkopf hinzu. (Jeder Nicht-Unicode-Zeichensatz (außer vielleicht us-ascii
und iso-8859-1
) ist böse.)
Senden:
Nathaniel schlug vor mail -a "Content-Type: text/html"
, aber das funktioniert nur mit GNU Mailutils.
Eine zuverlässigere Methode ist das Pipe der Nachricht sendmail
, aber Sie müssen alle Header selbst erstellen.
rcpt=joe@example.com echo -e "From: <$USER>\nTo: <$rcpt>\nDate: $(date "+%a, %d %b %Y %H:%M:%S %z")\nContent-Type: text/html; charset=utf-8\n\n<!DOCTYPE html>\n<p>Here is the link to: <a href=\"file:///S:/some_doc.html\">some_doc.html</a>" | sendmail -i "$rcpt"