Wie sende ich E-Mail-Nachrichteninhalte als HTML und nicht als Nur-Text?

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" [email protected]

In einigen E-Mail-Clients die " Datei:///S:/some_doc.html" im Nachrichtentext wird zu einem Link, auf den der Benutzer klicken kann, aber in anderen wenn es als Klartext dargestellt wird, muss der Benutzer die Zeichenfolge kopieren und in einen Webbrowser einfügen. Wie ändere ich den Befehl, damit die Nachricht HTML ist, damit der E-Mail-Client mit dem Link umgehen kann?

Dadurch wird der Link in die Nachricht eingefügt aber es wird immer noch wie Text behandelt, nicht HTML:

echo "Here is the link to: <a href='file:///S:/some_doc.html'>some_doc.html</a>" | mail -s "Here is some_doc.html" [email protected]
Author: smonff, 2011-02-08

2 answers

Ich habe es getan gesehen:

mail -a "Content-type: text/html;" -s Test [email protected] < mail_html.html

Ich hätte erwähnen sollen, ich habe dies auf Ubuntu Server 10.04_x64 mit Gnu Mail Utils getestet -> Postfix

 5
Author: Nathaniel Bannister,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-03 19:49:06

Meldung:

  • Am besten erstellen Sie eine MIME Content-Type: multipart/alternative - Nachricht mit den Teilen text/plain und text/html.

  • Für die Faulen reicht Content-Type: text/html (mit HTML direkt im Nachrichtentext).

    ...denken Sie jedoch daran, dass es E-Mail-Clients gibt, die HTML nicht anzeigen können.

  • Was auch immer Sie wählen, add a charset=utf-8 (wie in Content-Type: text/html; charset=utf-8) zum Typheader. (Jeder Nicht-Unicode-Zeichensatz (außer vielleicht us-ascii und iso-8859-1) ist böse.)

Senden:

  • Nathaniel schlug mail -a "Content-Type: text/html" vor, aber das funktioniert nur mit GNU Mailutils.

  • Eine zuverlässigere Möglichkeit besteht darin, die Nachricht sendmail zu leiten, aber Sie müssen alle Header selbst erstellen.

    [email protected]
    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"
    
 1
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-02-08 19:49:59