Salut à tous
Je suis en train de créer un site pour un ami qui envoie des mails autos lorsqu'un visiteur écrit un message.
J'utilise la fonction mail() de php mais je rencontre quelques soucis:
- Si j'ouvre le mail reçu sous Thunderbird, il s'ouvre sans problème en HTML et texte. Par contre, si je l'ouvre en passant par le webmail de gmail, le mail est vide.
- Toujours en ouvrant le mail dans le webmail de gmail, si je clique sur afficher les détails, il me met bien les informations correctes du header sauf une info "envoyé par" qui donne "9.mail-out.ovh.net". Ca fait pas très propre et j'aimerais, comme dans d'autres mails que j'ai vérifié afficher soit rien, soit autre chose mais je ne sais pas comment faire.
En ce qui concerne le premier problème et avant qu'on me le dise, mes lignes dans le mail sont terminées par \n et pas \r\n.
Voici le code:
Désolé pour le monsite.com mais je ne peux pas divulguer le nom du site...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function SendMail() { $destinataire='unmail@gmail.com'; $email_expediteur='no-reply@monsite.com'; $email_reply='no-reply@monsite.com'; $sujet = 'Un nouveau message!!'; $message_texte = 'Test'; $message_html = 'Ceci est un <b>Test</b>'; //----------------------------------------------- //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML //----------------------------------------------- $frontiere = '_' . md5(uniqid(mt_rand())) . '_'; //----------------------------------------------- //HEADERS DU MAIL //----------------------------------------------- $headers = 'From: "Service messages" <'.$email_expediteur.'>'."\n"; $headers .= 'Return-Path: '.$email_reply."\n"; $headers .= 'Reply-To: '.$email_reply."\n"; $headers .= 'X-Sender: www.monsite.com'."\n"; $headers .= 'X-mailer: php'."\n"; $headers .= 'Importance: Normal'."\n"; $headers .= 'MIME-Version: 1.0'."\n"; $headers .= 'Content-Type: multipart/alternative;'."\n"; $headers .= ' boundary="'.$frontiere.'"'."\n"; //----------------------------------------------- //MESSAGE TEXTE //----------------------------------------------- $message .= '--'.$frontiere."\n"; $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; $message .= 'Content-Transfer-Encoding: quoted-printable'."\n\n"; $message .= $message_texte."\n\n"; //----------------------------------------------- //MESSAGE HTML //----------------------------------------------- $message .= '--'.$frontiere."\n"; $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n"; $message .= 'Content-Transfer-Encoding: quoted-printable'."\n\n"; $message .= $message_html."\n\n"; $message .= '--'.$frontiere."\n"; if(mail($destinataire, $sujet, $message, $headers)) { return 1; } else { return 0; } }
Bref, j'ai beau retourner le problème dans tous les sens, comparer avec d'autres mails mais je ne trouve pas.
D'ailleurs, dans cette source, il y a pas mal de "restes" de mes tests Je pense d'ailleurs qu'une bonne partie du header est inutile.
Je débute donc soyez indulgents
Merci d'avance
Partager