[PHP] mail verstuurd geen HTML mails?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik krijg het niet voorelkaar en snap niet waar het aan kan liggen, maar de PHP functie mail verzend geen HTML meer.

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
//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!")); 

//send message 
mail($mymail, "An HTML Message", "<P>Hallo dit is een test<BR>Test<P>", $headers);


Als email resultaat krijg ik dit:

Content-Type: multipart/alternative; boundary = HTMLDEMO3fb0e1a865bb9 This is a MIME encoded message. --HTMLDEMO3fb0e1a865bb9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: base64 VGhpcyBpcyB0aGUgcGxhaW4gdGV4dCB2ZXJzaW9uIQ== --HTMLDEMO3fb0e1a865bb9 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: base64 VGhpcyB0aGUgPGI+SFRNTDwvYj4gdmVyc2lvbiE=

<P>Hallo dit is een test<BR>Test<P>

Op de een of andere manier lijkt PHP de HTML mail niet correct te verwerken, wellicht dat er een instelling gewijzigd moet worden in php.ini ? Maar welke, wie kan mij helpen?

Acties:
  • 0 Henk 'm!

  • xantos
  • Registratie: Juni 1999
  • Niet online
en je emailclient accepteert wel html?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja die accepteert wel HTML. Maar PHP schijnt er geen HTML van te maken op een of andere manier?

Acties:
  • 0 Henk 'm!

Verwijderd

Sommige email-clients vervangen \r door \n, dus dan krijg je \n\n en worden je headers er als gewone content uitgegooid.

Heel fijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Daar zat ik ook al aan te denken. Kan ik dit veranderen in een mime.class bestand?

Dat hij de /r eruit gooit. Zodat mail-clients gewoon één /n zien.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Mist er ook een eind boundary?

Acties:
  • 0 Henk 'm!

Verwijderd

Je wilt 2 versies van elk mailtje ofzo?
EN plain text / EN HTML?

Anders zou ik 't gewoon als volgt doen:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: SQL melder " . $SESSION[Naam] . "<" . $SESSION[Email] . ">\r\n";
    $headers .= "Reply-To: " . $SESSION[Email] . "\r\n";
    $headers .= "X-Mailer: PHP/" . phpversion();

    $message  = "\nSQL commando ontvangen op de site . . . ";
    $message .= "\n\nDeze mail is ter controle gestuurd. . . ";
    $message .= "\n\nBetreffende actie: " . $act;
    $message .= "\n\n<B>" . $sql;
    $message .= "\n\n</B><U>" . $sqlerror;
    mail("mail@adres.nl", "Onderwerp van bericht", nl2br($message), $headers);


offtopic:
(dit voorbeeld uit een werkend scriptje gevangen, waar bij ik mezelf alle mogelijk SQL errors toe mail, gezien ze niet op de site getoond worden, maar ik ze wel wil hebben)

Acties:
  • 0 Henk 'm!

Verwijderd

Heb ik ook een keer een tijdje mee geklooid. Ik had een script gebruikt die op php.net stond.

Zie de volgende link maar eens misschien kun je daar wat mee...

http://gathering.tweakers.net/forum/list_messages/831848///

Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
vanaf regel 14 is geen header meer. Geef dit dan ook niet mee als header aan de mail functie.
Pagina: 1