Schrift
[thread]1534[/thread]

Struktur des E-Mail Headers

Leser: 1


<< |< 1 2 >| >> 19 Einträge, 2 Seiten
[E|B]
 2004-04-24 23:11
#14798 #14798
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hallo!
Ich bin dabei mir ein Mailscript zu schreiben. Ich versende zur Zeit eine HTML E-Mail mit Attachment.
Ich habe nun folgenden E-Mail Header. Dieser wird vom Script generiert und dann verschickt. Leider bekomme ich in meinem E-Mail Programm nichts angezeigt. Weiß jemand, wo der Fehler im Header liegt?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
From: Erik Bertram <EMAIL>
To: EMAIL
Subject: Test
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-Mailer: EBNewsLetter 1.0
Content-type: multipart/mixed; boundary="----------M5&5S=#QH=&UL/@H\:&5A9#X"

------------M5&5S=#QH=&UL/@H\:&5A9#X
Content-type: text/html; charset="iso-8859-1"

<html>
<head>
</head>
<body>
<b>Test</b>
</body>
</html>

------------M5&5S=#QH=&UL/@H\:&5A9#X

------------M5&5S=#QH=&UL/@H\:&5A9#X
Content-type: image/gif; name="logout.gif"
Content-Transfer-Encoding: base64
Content-ID: <logout.gif>
Content-Disposition: attachment; filename="logout.gif"

R0lGODlhEAAQAMQAAPDi5vjx86padL+ClsiWptm2weXM1IMQNpUyU7NshPz5+vv4+fbu8fv2+P37
/Axv3Q1w2hFy2hd0zSd90D2Jz1ub1o642aTD2a/N4rjS4vD1+Mve6LLK1fny7f/59f/+/iH5BAAA
AAAALAAAAAAQABAAAAWv4JdNUmmaUGR9WEVh2SbPGTZF1URtX5AghwOi8PksKg/JygA8EABBQUMk
eVigB0PRODgkqNaEs7gAfByGbKZ6ATrO6YKicRhsKA/MQbBNE4oJAiMQF3ULRQxjHwgJHBIQFkAA
CkVODg5OjlYEXltPHwUHABcRkAxAfw0NDH4fHBCEDAwCQbVjHhcQExUbHg0FAggIAwABHRs5F7sc
zBwZGc0cOSs2JRPX2BQSExgfIQA7

------------M5&5S=#QH=&UL/@H\:&5A9#X

------------M5&5S=#QH=&UL/@H\:&5A9#X
Content-type: text/plain; name="Info.txt"
Content-Transfer-Encoding: base64
Content-ID: <Info.txt>
Content-Disposition: attachment; filename="Info.txt"

RGllcyBpc3QgZWluZSBCZWlzcGllbGRhdGVpIGRlcyBFQk5ld3NMZXR0ZXJzLg0KU2llIGthbm4g
b2huZSBCZWRlbmtlbiBnZWz2c2NodCB3ZXJkZW4sIGRhcw0KVmVyemVpY2huaXMgbXVzcyBqZWRv
Y2ggYmVzdGVoZW4gYmxlaWJlbi4NCg==

------------M5&5S=#QH=&UL/@H\:&5A9#X


Der Attachment ist in Base64 kodiert. Es muss mit der Struktur irgendetwas nicht stimmen. Nur was? Die Boundarys sind so weit ich das beurteilen kann richtig gesetzt. Aber was ist denn sonst falsch?
Danke!

btw: Meine E-Mail hab ich durch EMAIL ersetzt.\n\n

<!--EDIT|[E|B]|1082833907-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Christian
 2004-04-25 13:21
#14799 #14799
User since
2003-08-05
29 Artikel
BenutzerIn
[default_avatar]
Hi [E|B],

grundsätzlich siehts doch schon gut aus, ein|zweiKleinigkeiten fallen mir spontan auf, vielleicht liegts ja daran ... pobier mal aus :-))

1. deine Trennzeilen / boundary-Definition
lt. RFC müssen die Trennzeilen einer Multipart Mail mit zwei Bindestrichen beginnen (das hast du ja sogar mehrfach :-)), aber die letzte Trennzeile muss EBENFALLS mit 2 Bindestrichen enden! Damit wird das Ende der gesamten Mail markiert.

2. Die Trennzeilen brauchst du nur einmal zwischen den verschiedenen Teilen der Multipart-Mail aufführen, zumeist hast du dort zwei der Trennzeilen - mag sein, dass dein Mail-Agent dann wieder einen Content-? Eintrag dazwischen erwartet? Lass mal eine Zeile jeweils weg.

cu
Christian

PS: Have a nice perling :-)
esskar
 2004-04-25 18:04
#14800 #14800
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hi erik...
die mail sollte so aussehen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From: "Erik Bertram" <EMAIL>
To: <EMAIL>
Subject: Test
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-Mailer: EBNewsLetter/1.0
Content-Type: multipart/mixed;
<tab>boundary="----=_NextPart_000_0009_01C42ADF.52D634A0"

------=_NextPart_000_0009_01C42ADF.52D634A0
Content-type: text/html;
<tab>charset="iso-8859-1"

<html>
<head>
</head>
<body>
<b>Test</b>
</body>
</html>

------=_NextPart_000_0009_01C42ADF.52D634A0
Content-type: image/gif;
<tab>name="logout.gif"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
<tab>filename="logout.gif"

R0lGODlhEAAQAMQAAPDi5vjx86padL+ClsiWptm2weXM1IMQNpUyU7NshPz5+vv4+fbu8fv2+P37
/Axv3Q1w2hFy2hd0zSd90D2Jz1ub1o642aTD2a/N4rjS4vD1+Mve6LLK1fny7f/59f/+/iH5BAAA
AAAALAAAAAAQABAAAAWv4JdNUmmaUGR9WEVh2SbPGTZF1URtX5AghwOi8PksKg/JygA8EABBQUMk
eVigB0PRODgkqNaEs7gAfByGbKZ6ATrO6YKicRhsKA/MQbBNE4oJAiMQF3ULRQxjHwgJHBIQFkAA
CkVODg5OjlYEXltPHwUHABcRkAxAfw0NDH4fHBCEDAwCQbVjHhcQExUbHg0FAggIAwABHRs5F7sc
zBwZGc0cOSs2JRPX2BQSExgfIQA7

------=_NextPart_000_0009_01C42ADF.52D634A0
Content-type: text/plain;
<tab>name="Info.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
<tab>filename="Info.txt"

RGllcyBpc3QgZWluZSBCZWlzcGllbGRhdGVpIGRlcyBFQk5ld3NMZXR0ZXJzLg0KU2llIGthbm4g
b2huZSBCZWRlbmtlbiBnZWz2c2NodCB3ZXJkZW4sIGRhcw0KVmVyemVpY2huaXMgbXVzcyBqZWRv
Y2ggYmVzdGVoZW4gYmxlaWJlbi4NCg==

------=_NextPart_000_0009_01C42ADF.52D634A0--
.


wobei du <tab> durch \t ersetzen solltest!\n\n

<!--EDIT|esskar|1082904573-->
esskar
 2004-04-25 18:08
#14801 #14801
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
aonsonsten benutz MIME::LIte...
weil wenn du html verschicken willst, musst du noch quoted-printable und so nen kram machen...
Christian
 2004-04-25 18:48
#14802 #14802
User since
2003-08-05
29 Artikel
BenutzerIn
[default_avatar]
Hi esskar,

wobei der Tabulator zwischen den einzelnen Parametern, beim Content-Type beispielsweise, nicht notwendig ist (zumindes lt. meinen Docs (RFC's & Prog. mit Perl-Modulen, bzw. Net::SMTP) ).

Mach mich nicht schwach - will meine ganzen uraltalt Scripte nicht mehr ändern :-)))

cu
Christian
esskar
 2004-04-25 18:52
#14803 #14803
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
nein...
immer nur dann, wenn du information, die in eine zeile gehören ind zwei packst, musst du die Zeile mit einem tab beginnen...

also

Code: (dl )
Content-type: text/html; charset="iso-8859-1"


vs.

Code: (dl )
1
2
Content-type: text/html;
<tab>charset="iso-8859-1"
Christian
 2004-04-25 18:57
#14804 #14804
User since
2003-08-05
29 Artikel
BenutzerIn
[default_avatar]
@esskar: ahh, thx.
[E|B]
 2004-04-25 20:46
#14805 #14805
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
OK, danke euch allen erstmal.

@esskar

Ist quoted-printable denn notwendig? Wenn ich eine E-Mail nur mit HTML Code, also auch ohne Attachment, und ohne quoted-printable verschicke funktioniert es. Das Problem ist nur dann gegeben, wenn ein Attachment hinzukommt.
Was müsste ich alles ändern, um quoted-printable dazuzuschreiben?

@Christian

Muss dann jede Boundary in der Mail mit zwei Strichen an den Enden aufhören? Eigentlich nicht, das habe ich noch nie gemacht und bisher hat es eigentlich auch immer funktioniert. Zumindest wenn ich nur text/plain mit einem Attachment verschicke gab es keine Probleme. Nur wenn ich den text/plain Teil durch den HTML Teil ersetze wird nichts angezeigt.
Woran kanns liegen?
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
esskar
 2004-04-25 21:03
#14806 #14806
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
man muss gar nix...
es gibt standards, die man einhalten sollte...
dann muss man sich auch nicht wundern, wenn es nicht richtig klappt...

dein boundarys sind falsch...
erstens darf man nicht jede zeichen verwenden...
und das mit den -- stimmt
esskar
 2004-04-25 21:40
#14807 #14807
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
MIME::Parser hat diese genialen abschnitt:

First, let's get something straight: this is an evil, EVIL practice, and is incompatible with RFC-1521... hence, it's not valid MIME.
If your mailer creates multipart boundary strings that contain newlines when they appear in the message body, give it two weeks notice and find another one. If your mail robot receives MIME mail like this, regard it as syntactically incorrect MIME, which it is.

Why do I say that? Well, in RFC-1521, the syntax of a boundary is given quite clearly:

     boundary := 0*69<bchars> bcharsnospace
     bchars := bcharsnospace / " "
     bcharsnospace :=    DIGIT / ALPHA / "'" / "(" / ")" / "+" /"_"
                  / "," / "-" / "." / "/" / ":" / "=" / "?"
All of which means that a valid boundary string cannot have newlines in it, and any newlines in such a string in the message header are expected to be solely the result of folding the string (i.e., inserting to-be-removed newlines for readability and line-shortening only).

Yet, there is at least one brain-damaged (or malicious) user agent out there that composes mail like this:

     MIME-Version: 1.0
     Content-type: multipart/mixed; boundary="----ABC-
      123----"
     Subject: Hi... I'm a dork!
     This is a multipart MIME message (yeah, right...)
     ----ABC-
      123----
     Hi there!
We have got to discourage practices like this (and the recent file upload idiocy where binary files that are part of a multipart MIME message aren't base64-encoded) if we want MIME to stay relatively simple, and MIME parsers to be relatively robust.

Thanks to Andreas Koenig for bringing a baaaaaaaaad user agent to my attention.
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2004-04-24 23:11.