Thread HTML Mail verschicken (4 answers)
Opened by ak47 at 2003-08-25 14:14

Dubu
 2003-08-25 15:49
#79583 #79583
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[E|B
,25.08.2003, 12:29]Hi!
Wenn du HTML Code in der E-Mail haben willst, muss du den Header...

Code: (dl )
Content-type: text/html\n\n


... nehmen.

1.) Nicht, wenn man HTML in einer Mail haben moechte, sondern wenn die Mail nur aus HTML bestehen soll. Davon ist jedoch generell abzuraten, da nicht jeder einen HTML-faehigen MUA benutzt.

2.) Die doppelten Zeilenumbrueche im Code bereiten mir etwas Zahnschmerzen. Wenn jemand das kritiklos abschreibt (was leider schnell passiert), dann hat derjenige evtl. ploetzlich seine Mail-Header geschrottet, weil eine Leerzeile hineinkommt. Schliesslich braucht man bei E-Mails normalerweise ein paar Headerzeilen mehr als bei CGIs. Lieber extra daraufhinweisen, dass am Ende des Headers eine Leerzeile stehen muss.

Auch sollte explizit dazu gesagt werden, dass die entsprechende Zeile nur dann in den Mail-Header gehoert, wenn die gesamte Mail dadurch beschrieben wird; wenn es sich um eine Multipart-Message handelt, steht der jeweilige Content-Type im entsprechenden Part-Header und der Mail-Header enthaelt das o.a. "Content-type: multipart/irgendwas" oder evtl. auch ein "Content-type: message/rfc822", wenn es sich um eine eingebettete Mail handelt.

3.) Wo steht die MIME-Version? Wo steht das Encoding? Das wird ja nicht immer US-ASCII sein.
In dieser Kurzfassung ist eine MIME-Deklaration fast genauso verkrueppelt wie ein von M$-Ausguck produzierter Header.

Quote
Bei einer normalen Text E-Mail genügt der Header:

Code: (dl )
Content-type: text/plain\n\n

Wenn diese Text-E-Mail nur US-ASCII enthaelt, braucht sie gar keinen Content-type Header zu enthalten, da das der Default ist. Wenn das Encoding kein US-ASCII ist, muss das Encoding genannt sein, was hier fehlt. Ausserdem fehlt dann noch das Content-Transfer-Encoding, da man Nicht-7-Bit-Teile entweder encoden oder explizit als 8-Bit deklarieren muss.

Quote
Denk aber dran, dass wenn du Dateien mitschicken willst, diese erst mit Base64 zu codieren.

Wenn man irgendetwas verschicken moechte, was ueber 7-Bit-US-ASCII hinaus geht, sollte man es kodieren (und muss man es deklarieren). Das gilt auch fuer Plaintext. Nicht alle MTAs sind 8-Bit-fest.

Wenn eine Datei als Anhang verschickt wird, bedeutet das normalerweise, dass sie als eigener MIME-Part Bestandteil der Mail ist. Dann muss man bedenken, dass das Encoding der Datei und das Encoding des gesamten E-Mail nicht das Gleiche sind: Wenn ein Teil einer Mail mit einer Datei z.B. Base64-encoded ist und zusaetzlich noch ein Textteil in ISO-8859-1 und quoted-printable Kodierung vorliegt, dann bekommt die Gesamt-E-Mail das "Content-Transfer-Encoding: 7bit" ("8bit" oder "binary" waeren ebenfalls moeglich, da sie Obermengen von 7bit sind, wuerden aber eine unnoetige Einschraenkung beim Transport bedeuten).

Quote
In ca. 2 Tagen wird mein FAQ Beitrag zum Versand von E-Mail Attachments mit Sendmail fertig sein. Wenn du so lange noch warten kannst...

Ich bin gespannt. :-)

View full thread HTML Mail verschicken