[PHP] verschil in mail() functions

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste allemaal,

ik heb al verschillende topics gelezen maar geen een beschreef mjin probleem. Ik heb een site gemaakt waarin gebruikers een bestelling gemailed krijgen, alles ging goed todat ik de site van mijn server naar een andere heb gedaan ("profesionele" hosting :P). met de mail() van mijn server (php 4.3.9-1) gaat alles goed hiermee stuur ik mooi een stukje html per mail en laat hij alles mooi zien (zie hier http://www.sheepz.com/tweakers/goed.jpg). Maar zodra ik het vanaf de andere server(php 4.3.7) doe die de site daadwerkelijk gaat hosten wordt de html niet ge-encode (zie http://www.sheepz.com/tweakers/niet-goed.jpg). Beide systemen draaien een versie van linux dus de sendmail moet hetzelfde werken (windows versie werkt iets anders las ik al).

ik gebruik de volgende headers :

code:
1
2
3
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "From: xxxxxx.nl <xxxx@xxxx.nl>\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";


Dus vanaf mijn eigen server laat hij HTML altijd goed zien, maar vanaf de server waarop hij uiteindelijk komt doet hij het bij heel veel mensen niet (outlook gaat soms nog goed), maar in gmail laat hij het iig niet goed zien.

Iemand suggesties? ik neem aan dat ik iets aan de headers moet veranderen, maar weinig helpt.

alle suggesties zijn welkom ;)

Acties:
  • 0 Henk 'm!

  • L0we
  • Registratie: Mei 2004
  • Laatst online: 19-09 13:06
Ik ben dat probleem ook al verschillende keren tegen gekomen, dat bij verschillende php versies de mailer ook anders werkt. Wat bij mij nu wel (overal) werkt is PHPMailer http://phpmailer.sourceforge.net/
Dat is een vrij uitgebreide class, en ik vind hem erg prettig werken.

succes!

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Bekijk de headers van beide e-mails en kijk eens of daar een verschil in zit.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
als ik van de headers dit maak >>

code:
1
2
3
$headers  = "MIME-Version: 1.0\r";
$headers .= "From: xxxxx.nl <xxxxx@xxxx.nl>\r";
$headers .= "Content-type: text/html; charset=iso-8859-1\r";


doet hij het wel in gmail maar laat hij het in outlook weer niet goed zien

outlook leest het dan als MIME-Version:1.0From:xxxx.nl.......Content-type: .....
gmail add de \n er denk zelf bij want die parsed ze niet als een regel.

er moet toch een universele manier zijn neem ik aan waarmee het in outlook/gmail hetzelfde eruit ziet..

Acties:
  • 0 Henk 'm!

  • L0we
  • Registratie: Mei 2004
  • Laatst online: 19-09 13:06
Verwijderd schreef op maandag 11 april 2005 @ 17:42:

er moet toch een universele manier zijn neem ik aan waarmee het in outlook/gmail hetzelfde eruit ziet..
Dat dacht ik inderdaad ook, maar ik kwam toch telkens weer iets tegen wat niet werkte, of outlook deed het niet goed, of gmail niet. Ik heb het dus opgegeven :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heej ik maak voorderingen :P

als ik de MIME dingen weglaat blijkt het wel te werken (outlook/gmail dan) nu ff kijken het onder andere clients ook nog werkt...

Acties:
  • 0 Henk 'm!

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 10-02 23:00
Kun je niet phpmailer gebruiken? (Is een php "script" te halen op sourceforge, en is _zeer_ handig :) )

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
natuurlijk kan ik phpmailer ook gebruiken maar iets wat ik zelf maak zou ik toch wel graag laten werken :P ben daarin beetje koppig denk :)

maar zo te zien werkt alles nu goed alleen dat MIME gedoe zat in de weg ik post wel even wat ik nu letterlijk heb :

code:
1
2
3
$headers  = "From: xxxx.nl <xxxxx@xxxxx.nl>\r\n";
$headers .= "Bcc: xxxx van xxxx <xxxx@xxxx.nl>\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n\n\n\n";


* die 4 \n heb ik gedaan voor outlook die schijnt dat nodig te hebben (vraag me niet waarom)

Acties:
  • 0 Henk 'm!

  • Erhnam
  • Registratie: Januari 2000
  • Laatst online: 21:36

Erhnam

het Hardware-Hondje :]

Ik doe het zo:

PHP:
1
2
3
4
5
6
7
8
9
10
11
$subject = "Registratie Shivella.nl";
$enter = "<br>";
$from = "noreplay@shivella.nl";
$message = "Beste $naam $enterWelkom bij Shivella.nl! $enter $enter U bent succesvol geregistreerd en u kunt inloggen met de volgende gegevens: $enter $enter Gebruikersnaam: $gebruikersnaam $enter Password: $wachtwoord2 $enter $enter $enter Succes!$enter Btw! Let op de Hoofdletters! $enter";

    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: " . $_POST['name'] . "<" . $from . ">\r\n";


mail($email, $subject, $text .$message,$headers);

[ Voor 14% gewijzigd door Erhnam op 11-04-2005 18:50 ]

http://www.xbmcfreak.nl/


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 19-09 13:37
Verwijderd schreef op maandag 11 april 2005 @ 17:42:
als ik van de headers dit maak >>

code:
1
2
3
$headers  = "MIME-Version: 1.0\r";
$headers .= "From: xxxxx.nl <xxxxx@xxxx.nl>\r";
$headers .= "Content-type: text/html; charset=iso-8859-1\r";


doet hij het wel in gmail maar laat hij het in outlook weer niet goed zien

outlook leest het dan als MIME-Version:1.0From:xxxx.nl.......Content-type: .....
gmail add de \n er denk zelf bij want die parsed ze niet als een regel.

er moet toch een universele manier zijn neem ik aan waarmee het in outlook/gmail hetzelfde eruit ziet..
* Spinal herinnert zich vaag iets dat je e-mail headers altijd met \n moet doen ipv \r\n of alleen \r
Maar zeker weten doe ik het niet...

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Waarom gebruik je niet een class als PHPmailer? Deze is hier erg handig voor.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

ZanderZ schreef op maandag 11 april 2005 @ 19:52:
* NMe herinnert zich vaag iets dat je e-mail headers altijd met \n moet doen ipv \r\n of alleen \r
Maar zeker weten doe ik het niet...
Voor zover ik weet juist met \r\n. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Lukse
  • Registratie: Januari 2004
  • Laatst online: 12-04-2023
-NMe- schreef op maandag 11 april 2005 @ 20:08:
[...]

Voor zover ik weet juist met \r\n. ;)
\n is enter in *nix. \r\n is enter is windows.
Maar zover ik weet moet je idd \r\n gebruiken (chr 13 en 10 uit ascii tabel).

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Erhnam schreef op maandag 11 april 2005 @ 18:47:
Ik doe het zo:

PHP:
1
2
3
$subject = "Registratie Shivella.nl";
$enter = "<br>";
$from = "noreplay@shivella.nl";
offtopic:
Ik zou van noreplay@ noreply@ maken ;)

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 19-09 13:37
-NMe- schreef op maandag 11 april 2005 @ 20:08:
[...]

Voor zover ik weet juist met \r\n. ;)
Vreemd :P \n werkt prima hier... Heb nog nooit klachten gehad dat iemand z'n registratiemailtje niet kon lezen...

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 22:43
Waarschijnlijk lost je locale mailserver het dan op, door die \r om te zetten in \r\n. Die \r is in ieder geval gewoon fout, dat moet volgens de RFC echt \r\n zijn. ;)

[ Voor 3% gewijzigd door Soultaker op 12-04-2005 01:15 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ZanderZ schreef op dinsdag 12 april 2005 @ 00:56:
[...]


Vreemd :P \n werkt prima hier... Heb nog nooit klachten gehad dat iemand z'n registratiemailtje niet kon lezen...
In de eerste instantie werkte het bij mij eerst ook al 100% maar er schijnen toch verschillen te kunnen zitten tussen bepaalde servers :S het is of php of de sendmail die misschien anders is... maar gelukkig werkt het nu helemaal :D
Pagina: 1