Wie sende ich E-Mails über die Linux-Befehlszeile, damit sie dem Empfänger als HTML angezeigt werden?


10

Ich habe versucht, eine normale Webseite mit folgenden E-Mails zu versenden:

mail -s "Test Email" blah@blah.com < webpage.htm

Der Empfänger sieht jedoch die rohen HTML-Tags in der E-Mail und keine meiner sorgfältigen Formatierungen. Ich benutze RedHat Linux.

Antworten:


10

Sie müssen der MUA mitteilen, dass der Inhalt HTML enthält. Traditionell erfolgt dies mit MIME. Fügen Sie Ihrer Nachricht die folgenden Kopfzeilen hinzu:

Mime-Version: 1.0
Content-Type: text/html

Möglicherweise müssen Sie auch einen Content-Transfer-Encoding-Header hinzufügen. Die Wikipedia-Seite zu MIME enthält weitere Details, einschließlich Links zu relevanten RFCs.

Update: Dies hat gut funktioniert, wenn in sendmail -t:

From: me@example.org
To: me@gmail.com
Subject: MIME Test
Mime-Version: 1.0
Content-Type: text/html

<html>
<body>
This is a test.
</body>
</html>

Wenn ich einen Inhaltstyp habe, wird application/xhtml+xmldieser als Anhang geliefert. Glaubst du, es kann behoben werden?
Adobe

Eine andere Frage: Wenn ich Inline-Bilder in einer HTML-Datei habe - wie behalte ich sie mit dieser Methode ( sendmail -t)?
Adobe

Inline-Bilder: Ich habe eine Lösung gefunden - aber Google Mail lädt die Bilder nicht (Yahoo do).
Adobe

2

Lösung a envio html

mail -a 'MIME-Version: 1.0' -a 'Content-Type: text/html; charset=iso-8859-1' -a 'X-AUTOR: Ing. Gareca' -s 'MTA STATUS: mail queue' rgareca@hotmail.com  -- -f seincotel@seincotel.com  < /tmp/eximrep.html

1

es ist nicht möglich mit mailafaik. Aber hier ist eine kurze Anleitung mit sendmail.


1

Sicher ist es mit Mail möglich:

mail -a 'Content-type: text/html; charset="us-ascii"' foo@bar.com < /file.html

Ich erhalte eine Fehlermeldung: Content-type: text/html; charset="us-ascii": No such file or directory. Aus mail --help erhalte ich die Option -a zum Übergeben von FILE.
Prabhat Kumar Singh

0

Bei E-Mail-Nachrichten wird wie bei Webseiten der Inhaltstyp in den Kopfzeilen angegeben. 'mail' scheint älter zu sein und sendet keine. Daher greifen alle MUAs darauf zurück, die Nachricht als Text / Plain anzuzeigen.

Wenn Sie alle Header manuell angeben möchten, rufen Sie sendmail recipient@example.comalles auf und übergeben Sie es.

<subjective>Aber denken Sie daran , dass , während HTML - E - Mails von einigen Leuten (mir eingeschlossen ) unbeliebt sind, HTML E - Mails erhalten , ohne einen alternativen text / plain Teil ist wirklich ärgerlich . Wenn Sie nicht absolut sicher sind, dass der Empfänger HTML-Nachrichten gut sehen kann, ist es besser, alternativ eine mehrteilige Nachricht mit einem Klartextteil zu senden.</subjective>


SMTP (STD 11 / RFC 823, 1982) ist tatsächlich älter als MIME (RFC 2045, 1996) und all seine HTML-fähigen Eigenschaften. Es wurde aus Büffelhäuten zu Beginn des Internets gebildet.
Gerald Combs

Gerald: Ich meinte die mailxMUA (die ich aus irgendeinem Grund noch älter finde), nicht die E-Mail selbst.
Benutzer1686

Laut der OS X-Mail-Seite (1) wurde in Version 1 AT & T UNIX ein Mail-Befehl angezeigt. Ubuntu sagt, es war Version 3 AT & T UNIX. So oder so scheint es um 1971 oder 1973
Gerald Combs

0

uuencode webpage.html webpage.html | mail -s "subject" email@address

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.