Toon posts:

[php][multipart] email, html, plain, image

Pagina: 1
Acties:
  • 113 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik weet dat er hier al aardig wat topics over geweest zijn, maar ik zit nu al meer dan 3 uur te kloten met die stomme boundary's multipart contenttypes en andere mail bagger en kom er niet uit. Wat ik gevonden heb met zoeken werkte bij mij ook niet.
Ook het voorbeeld wat ik rechtstreeks overgenomen heb van ZEND werkt niet: html-email.php

Ik zou het erg fijn vinden als iemand me 1 keer goed voor kan doen hoe ik dmv mail() een multipart mailtje verstuur met zowel, plaintext als htmltext met bij html een inline plaatje.

En kom aub niet aan met gebruik die en die class, want daar heb ik ff geen zin in, ik wil gewoon snappen wat ik fout doe of waarom het bij mij niet werkt, wat wel schijnt te moeten werken.

Ik ga niet posten wat ik tot nu toe heb gecode want dat zijn zoveel verschillende dingen dat ik niet weet welke ik zou moeten posten.

Mijn bedoeling is dat het gewoon via een soortgelijke methode:


$headers="headertroep";
$body="$bodytroep"

mail("naar@adres.blaat","onderwerp",$body,$headers);

werkt.

Alvast erg bedankt!
ps. ik denk dat het bij mij mis gaat met de CLRF's

  • tomato
  • Registratie: November 1999
  • Niet online
Sorry als je teleurgesteld bent als ik met links aan kom die je voor de tigste keer ziet vandaag, maar ik heb niet zo'n zin om heel het MIME mail gebeuren weer uit te gaan leggen omdat ik er dan zelf ook weer helemaal in moet duiken ;)

Heb je deze al gezien?
[topic=61299]

Ik kan de thread waar ik ooit iets in heb uitgelegd over MIME mailtjes in PHP niet meer vinden, maar waarschijnlijk is die ook overbodig na die van Arien...

Misschien kun je iets specifieker aangeven wat je precies doet (evt na deze link gevolgd te hebben) en wat er dan mis gaat.

  • Lurge
  • Registratie: Maart 2000
  • Niet online

Lurge

ActueleWind

misschien hoort dit niet helemaal hier maar hoe moet je dan een simpele attachment bijvoegen? Ik neem aan dat je dan de onderstaande regel moet vervangen door iets anders maar door wat?
code:
1
Content-Type: image/gif; name="naam.gif"

ActueleWind


Verwijderd

www.php.net en dan op functie mail zoeken, daar staat heel veel, dan moet je er denk ik wel uitkomen...

Verwijderd

Topicstarter
oke bedankt voor die link, maar die had ik natuurlijk allang gevonden :)

Ik zal wel even een voorbeeld geven van wat ik had:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$from="Mij <ik@host.nl>";
$headers ="From: $from\r\n";
$headers.="Reply-To: mij@ik.blaat\r\n";
$headers.="Content-Type: multipart/alternative;  boundary=\"=======123456789\"\r\n";
$headers.="MIME-Version: 1.0\r\n";
$headers.="Content-Transfer-Encoding: 7bit\r\n";
$headers.="Content-Type: text/plain\r\n";
$headers.="plain tekst hier....\r\n";
$headers.="--=======123456789\r\n";
$headers.="Content-Type: multipart/related; boundary=\"=======987654321\"\r\n";
$headers.="--=======987654321\r\n";
$headers.="Content-Type: text/html\r\n";
$headers.="Content-Transfer-Encoding: 7bit\r\n";
$headers.="HTML tekst [img]\"cid:$uniek@host\"[/img]\r\n";
$headers.="--=======987654321\r\n";
$headers.="Content-Type: image/gif; name=\"$file\"\r\n";
$headers.="Content-Transfer-Encoding: base64\r\n";
$headers.="Content-ID: <$uniek@host>\r\n";
$headers.="Content-Disposition: inline; filename=\"$file\"\r\n";
$headers.="$image\r\n";
$headers.="--=======987654321--\r\n";
$headers.="--=======123456789--";

resultaat was:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
plain tekst hier....
--=======123456789
Content-Type: multipart/related; boundary="=======987654321"
--=======987654321
Content-Type: text/html
Content-Transfer-Encoding: 7bit
HTML tekst [img]"cid:3a55fb06787b5d315b3ae5d8d922c2a1@host"[/img]
--=======987654321
Content-Type: image/gif; name="maillogo.gif"
Content-Transfer-Encoding: base64
Content-ID: <3a55fb06787b5d315b3ae5d8d922c2a1@host>
Content-Disposition: inline; filename="maillogo.gif"
R0lGODlhmQBGALMAAFxdYuzt7svLy/Hy8n1+gaVFgaqqqi4tLGs9Wff4+IaTqshKmn6Oq+bn6Dc1
Nf/// -----base64_chunk_split_encoded gifje---- erz4+EQAAOw==


--=======987654321--
--=======123456789--

Voorbeeld van arien is heel mooi en duidelijk, maar volgens mij gaat het bij mij mis met de CRLF's en in dat voorbeeld zie ik dat niet echt terug... Ook als ik daar een lege regel voor \r\n\r\n aanzie en de rest als \r\n doet ie raar.

Schiet iemand te hulp?

Verwijderd

Topicstarter
voorbeeld van zend:
PHP:
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
<?
//add From: header
$headers = "From: webserver@localhost\r\n";

//specify MIME version 1.0
$headers .= "MIME-Version: 1.0\r\n";

//unique boundary
$boundary = uniqid("HTMLDEMO");

//tell e-mail client this e-mail contains//alternate versions
$headers .= "Content-Type: multipart/alternative" .
   "; boundary = $boundary\r\n\r\n";

//message to people with clients who don't
//understand MIME
$headers .= "This is a MIME encoded message.\r\n\r\n";

//plain text version of message
$headers .= "--$boundary\r\n" .
   "Content-Type: text/plain; charset=ISO-8859-1\r\n" .
   "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("This is the plain text version!"));

//HTML version of message

$headers .= "--$boundary\r\n" .
   "Content-Type: text/html; charset=ISO-8859-1\r\n" .
   "Content-Transfer-Encoding: base64\r\n\r\n";
$headers .= chunk_split(base64_encode("This the <b>HTML</b> version!"));

//sendmessage
mail("root@localhost", "An HTML Message", "", $headers);
?>

geeft resultaat:
code:
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Delivered-To: root@localhost
Received: from server (server [x.x.x.x]) 
      by server (Postfix) with ESMTP id D7E6623D21 
      for <root@localhost>; Thu, 29 Nov 2001 11:54:15 +0100 (MET) 
Received: by server (Postfix, from userid 99) 
      id 0EDE92BD41; Thu, 29 Nov 2001 11:54:16 +0100 (MET) 
To: root@localhost 
Subject: An HTML Message 
From: webserver@localhost
MIME-Version: 1.0 
Content-Type: multipart/alternative; boundary = HTMLDEMO3c0613d8a394b 


Message-Id: <20011129105416.0EDE92BD41@server>
Date: Thu, 29 Nov 2001 11:54:16 +0100 (MET)


This is a MIME encoded message.


is is a MIME encoded message.



is is a MIME encoded message.
--HTMLDEMO3c0613d8a394b


HTMLDEMO3c0613d8a394b
Content-Type: text/plain; charset=ISO-8859-1


ntent-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: base64


ntent-Transfer-Encoding: base64



ntent-Transfer-Encoding: base64
VGhpcyBpcyB0aGUgcGxhaW4gdGV4dCB2ZXJzaW9uIQ==


hpcyBpcyB0aGUgcGxhaW4gdGV4dCB2ZXJzaW9uIQ==
--HTMLDEMO3c0613d8a394b


HTMLDEMO3c0613d8a394b
Content-Type: text/html; charset=ISO-8859-1


ntent-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: base64


ntent-Transfer-Encoding: base64



ntent-Transfer-Encoding: base64
VGhpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=


hpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=


hpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=


hpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=

hpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=

  • tomato
  • Registratie: November 1999
  • Niet online
woeitje: oke bedankt voor die link, maar die had ik natuurlijk allang gevonden :)
I thought so ;)
Ik zal wel even een voorbeeld geven van wat ik had:
code:
1
[..]

resultaat was:
code:
1
[..]

Voorbeeld van arien is heel mooi en duidelijk, maar volgens mij gaat het bij mij mis met de CRLF's en in dat voorbeeld zie ik dat niet echt terug... Ook als ik daar een lege regel voor \r\n\r\n aanzie en de rest als \r\n doet ie raar.
Het resultaat wat je hier geeft, is dat zoals je het in je mailbox ziet? Op welk platform werk je (server en mailontvanger) en welke mailclient gebruik je?

Verwijderd

Topicstarter
Op donderdag 29 november 2001 15:29 schreef tomato het volgende:

[..]

I thought so ;)
[..]

Het resultaat wat je hier geeft, is dat zoals je het in je mailbox ziet? Op welk platform werk je (server en mailontvanger) en welke mailclient gebruik je?
Dit resultaat waar ik het over had:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
plain tekst hier....
--=======123456789
Content-Type: multipart/related; boundary="=======987654321"
--=======987654321
Content-Type: text/html
Content-Transfer-Encoding: 7bit
HTML tekst [img]"cid:3a55fb06787b5d315b3ae5d8d922c2a1@host"[/img]
--=======987654321
Content-Type: image/gif; name="maillogo.gif"
Content-Transfer-Encoding: base64
Content-ID: <3a55fb06787b5d315b3ae5d8d922c2a1@host>
Content-Disposition: inline; filename="maillogo.gif"
R0lGODlhmQBGALMAAFxdYuzt7svLy/Hy8n1+gaVFgaqqqi4tLGs9Wff4+IaTqshKmn6Oq+bn6Dc1
Nf/// -----base64_chunk_split_encoded gifje---- erz4+EQAAOw==

--=======987654321--
--=======123456789--

is wat ik in me broser zie.

(dus alle headers boven plain text heeft ie wel netjes gepakt.)

Ik draai onder linux, en mailclient is Eudora 5.1 (onder w2k)
Pagina: 1