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

Umber Ferrule
quelle

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: [email protected]
To: [email protected]
Subject: MIME Test
Mime-Version: 1.0
Content-Type: text/html

<html>
<body>
This is a test.
</body>
</html>
Gerald Combs
quelle
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' [email protected]  -- -f [email protected]  < /tmp/eximrep.html
Rgareca
quelle
1

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

Christian
quelle
1

Sicher ist es mit Mail möglich:

mail -a 'Content-type: text/html; charset="us-ascii"' [email protected] < /file.html
user55079
quelle
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 [email protected]alles 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>

user1686
quelle
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

Wagoo
quelle