[PHP] HTML mail naar Telenet en Gmail-adressen

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

Onderwerpen


Acties:
  • 0 Henk 'm!

  • freekmurze
  • Registratie: Juni 2005
  • Laatst online: 04-07 00:39
Ik ben bezig aan een php-scriptje dat een html mail moet sturen naar de mailingslist van een webwinkeltje.

Ik kom een vervelend probleem tegen waarbij de html mail goed verzonden worden naar ofwel de telenet-mailadressen ofwel de gmail-mailadressen (hotmail, yahoo, ed, ... heb ik nog niet getest omdat ik eerst van dit probleem wil afgeraken)

Dit stukje code zorgt ervoor dat gmail goed de html weergeeft, telenet-adressen krijgen een brok tekst-html in hun mailbox

code:
1
2
3
4
5
6
7
8
9
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From: " . $from . "\r\n" ;
$headers .= "Bcc: " . $_POST["bcc"] . "\r\n"  ;
    
$message = $_POST["message"];
$message = "<HTML>\n<HEAD>\n</HEAD>\n<BODY>\n" . stripslashes($message) . "\n</BODY>\n</HTML>" ;
    
mail($from, $_POST["subject"], $message, $headers);

Als ik die code wijzig door een \n achter de MIME-header te plaatsen dan geeft telenet de html goed weer, gmail-adressen krijgen een brok tekst-html in hun mailbox
code:
1
    $headers  = "MIME-Version: 1.0\r\n";


Hoe kan ik ervoor zorgen dat zowel telenet als gmail mijn html-mail goed weergeeft?

Acties:
  • 0 Henk 'm!

  • ikke007
  • Registratie: Juni 2001
  • Laatst online: 18-09 14:10
misschien gebruik maken van een wat uitgebreidere mail class, bijvoorbeeld Mail icm Mail_mime van PEAR

Lets remove all security labels and let the problem of stupidity solve itself


Acties:
  • 0 Henk 'm!

  • Tjark
  • Registratie: Juni 2000
  • Laatst online: 18-09 23:26

Tjark

DON'T PANIC

Kijk eens naar http://www.xpertmailer.com/
't is een free, makkelijke en zeer uitgebreide php mail class die iig goed html naar gmail/hotmail/etc kan sturen is mijn ervaring. Ook bv embedded images zijn mogelijk.

[ Voor 13% gewijzigd door Tjark op 21-08-2007 11:21 ]

*insert signature here


Acties:
  • 0 Henk 'm!

Verwijderd

Volgens mij heeft het te maken met het OS wat er gedraait wordt. Verschillende besturingssystemen gebruiken andere karakters voor een het beginnen van een nieuwe regel. Wat de verschillen precies waren weet ik zo snel niet meer...

Acties:
  • 0 Henk 'm!

  • Sendy
  • Registratie: September 2001
  • Niet online
Ik zou ook zeggen probeer eerst die \r\n door \n te vervangen. Verder zou ik je aanraden om eenvoudiger te testen.

Maak een e-mail zoals jij denkt dat die eruit moet zien (dus zonder php te gebruiken). Doe dan
code:
1
2
3
4
5
6
7
8
telnet gmail-smtp-in.l.google.com. 25
MAIL FROM: jouwemail@jouwdomain.com
RCPT TO: gmailadress@gmail.com
DATA
<copy-paste je e-mail hier>
.
<enter>
QUIT


Je kan dan duidelijk zien wat de input is en wat de output wordt. Zoek uit welke input tekst het goed doet. Herhaal dit bij je andere provider. Rinse, lather, repeat.