[php] MIME mail naar Zonnet gebruikers

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 12-09 14:07

BierPul

2 koffie graag

Topicstarter
Via deze code verstuur ik een berg emails

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
35
36
37
38
/* Maak random key's voor de boundary's */
mt_srand(make_seed());
$key[0] = md5(mt_rand());


/* Bepaal de boundary's */
$boundary = "----=_$key[0]";

/* Stel de headers samen */
$headers = "From: $afezendernaam <$afzender>\n";
$headers .= "Reply-To: $afzender\n";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Mailer: NPL Mailer\n";

/* Begin het samenstellen van de body */
$message .= "--$boundary\n";

$message = "$boundary\n";
$message .= "Content-Type: multipart/alternative; boundary=\"$boundary\"\n";

$message .= "Content-Type: text/plain;\n charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";

/* Plaats hier je text/plain bericht. */
$message .= "$text\n";

$message .= "--$boundary\n";
$message .= "Content-Type: text/html;\n charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 7bit\n";

/* Plaats hier je text/html bericht. */
$message .= "$html\n";

// Vanaf hier gaan we mailen

mail($email_to, $subject, $message, $headers);


Overal komt ie verder netjes aan alleen krijg ik klachten van zonnet webmail gebruikers.

Deze krijgen een blanco mail :(

Heeft iemand ervaring met MIME geformateerde mail te versturen naar deze client :?

Ja man


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Nee geen ervaring maar dit is wel vaag

PHP:
18
19
20
$message .= "--$boundary\n"; 

$message = "$boundary\n";


Mist daar geen . ?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

en $afezendernaam moet vast ook $afzendernaam zijjn...

Acties:
  • 0 Henk 'm!

Verwijderd

even een aantal punten:

je verstuurt mail die bestaat uit meerdere 'parts' (plain en html). Dat wil dus zeggen, dat je (minstens) 3 content-type definities moet hebben. Ik zie er 4 :? Eerst zeg je in de header multipart/mixed, lijkt me ok. Daarna begin je je 1e part en zeg je multipart/alternative (was dat niet voor attachments ofzo :?). Gelijk daarop weer een content-type, dit keer text/plain (die is iig goed). En daarna een einde boundary.

En helemaal onderaan je html mail, zonder boundaries. Dit kon dacht ik wel.

Tevens zijn je boundaries nogal raar opgesteld.

Heb je de complete mail al s ge-echo-ed op t scherm, want ik weet haast wel zeker dat wat er staat, niet is wat jij wil dat er staat (zeker icm met de reply van LuCarD)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Zo iets had ik ook last van maar dan met users bij vuurwerk.nl het probleem zat in het afsluiten van de regels. dus \n moest soms worden \r\n
http://gathering.tweakers.net/forum/list_messages/570859

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
LOST_GUNT schreef op 16 augustus 2002 @ 13:12:
Via deze code verstuur ik een berg emails

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
35
36
37
38
/* Maak random key's voor de boundary's */
mt_srand(make_seed());
$key[0] = md5(mt_rand());


/* Bepaal de boundary's */
$boundary = "----=_$key[0]";

/* Stel de headers samen */
$headers = "From: $afezendernaam <$afzender>\n";
$headers .= "Reply-To: $afzender\n";

$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Mailer: NPL Mailer\n";

/* Begin het samenstellen van de body */
$message .= "--$boundary\n";

$message = "$boundary\n";
$message .= "Content-Type: multipart/alternative; boundary=\"$boundary\"\n";

$message .= "Content-Type: text/plain;\n charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";

/* Plaats hier je text/plain bericht. */
$message .= "$text\n";

$message .= "--$boundary\n";
$message .= "Content-Type: text/html;\n charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: 7bit\n";

/* Plaats hier je text/html bericht. */
$message .= "$html\n";

// Vanaf hier gaan we mailen

mail($email_to, $subject, $message, $headers);


Overal komt ie verder netjes aan alleen krijg ik klachten van zonnet webmail gebruikers.

Deze krijgen een blanco mail :(

Heeft iemand ervaring met MIME geformateerde mail te versturen naar deze client :?
Yep, weet alles van MIME :)

Je content-type in de header moet zijn multipart/alternative

je bericht bestaat dan uit 2 entities, een plain/text en een plain/html entity

PHP:
1
2
3
4
5
6
7
8
9
$message = "--$boundary\n";
$message .= "Content-Type=plain/text\n";
$message .= "\n";
$message .= "$text_part met elke lijn netjes afgesloten met \n en een maximale regellengte van 998 (schatting, zie rfc2822 voor details)";
$message .= "--$boundary\n";
$message .= "Content-Type=plain/html\n";
$message .= "\n";
$message .= "$html_part met elke lijn netjes afgesloten met \n en een maximale regellengte van 998 (schatting, zie rfc2822 voor details)";
$message .= "--$boundary--";


Afhankelijk van hoe je de mail verstuurd maakt verder ook nog uit of je "\n" gebruikt of "\r\n". Bij sendmail gebruik je \n, bij smtp gebruik je \r\n.

Succes.

[ Voor 0% gewijzigd door stekkel op 17-08-2002 12:17 . Reden: single quote wordt ' ??? ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hetzelfde probleem kwam ik tegen: HTML werkt voor iedereen perfect, maar de Zonnet-webmail laat een lege pagina zien.

Toch maar even een account aangevraagd (thanks voor de link LuCarD) en uitgezocht. Blijkt dat Zonnet-webmail gratis en voor niets alle regels afbreekt bij ongeveer 73 karakters (kan ook 75 of zo zijn, maar ik heb maar 73 aangehouden). Het gevolg is dat de HTML niet (goed) meer werkt.

De oplossing voor mij was om alle regels ZELF dan maar af te breken, binnen de tags:
code:
1
[img]"helelangefilename.jpg"[/img]

afbreken als
code:
1
2
<IMG
src="filename.jpg">

Want Zonnet doet het misschien wel zo, en dan werkt het niet meer:
code:
1
2
[img]"filen
ame.jpg"[/img]


Het enige waar ik nu mee zit is hoe ik dynamisch ingevoerde tekst en HTML op zo'n manier af kan breken. Als iemand een tip heeft graag!

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Kan je geen wordwrap gebruiken? Als het goed is maakt het niet uit voor de HTML.

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

voor de 'vulling' gebruik ik een WYSISYG-editor (htmlArea), dus dat kan dan niet...
Pagina: 1