Bonjour,
afin de valider l'existence de l'email saisi lors de l'inscription sur mon site, j'ai utilisé la fonction mail pour envoyer un mail avec lien de validation à l'internaute.
Je suis alors confronté à 2 problèmes :
- le 1er, apparament courant, c'est que mes mails sont envoyés directement dans les spams des boites, quelque soit le service de messagerie (Gmail, Yahoo Mail, hotmail...)
- le second, c'est que l'url de validation n'est pas fidèlement retransmise par certains service de messagerie (Gmail) :
Comme vous pouvez le constater je passe la clé de validation (stockée dans une variable $validation en GET dans l'url.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $message_html .= "http://www.monsite.com/index.php?validation=" . $validation;
Le problème c'est que Gmail (et peut être d'autres) supprime purement et simplement le signe '=' de mon adresse et je me retrouve avec un adresse inefficace dans mes mail :
Il manque donc le signe égal : = !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $message_html .= "http://www.monsite.com/index.php?validationCléValidation;
Voici le code général de mon envoi de mail :
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 $destinataire= $email; $email_expediteur='postmaster@monsite.com'; $email_reply='postmaster@monsite.com'; $message_texte = "Mon message texte avec le fameux lien qui marche pas"; $message_html = "Mon message html avec le fameux lien qui marche pas"; $boundary = "-----=" . md5( uniqid ( rand() ) ); $headers = "Reply-to: \"Mon site\" <".$email_reply.">\n"; $headers .= "From: \"Mon site\"<".$email_expediteur.">\n"; $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\""; $sujet = "Bienvenue sur mon site - Validation d'inscription"; $message = "This is a multi-part message in MIME format.\n\n"; $message .= "--" . $boundary . "\n"; $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $message_texte; $message .= "\n\n"; $message .= "--" . $boundary . "\n"; $message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $message .= "Content-Transfer-Encoding: quoted-printable\n\n"; $message .= $message_html; $message .= "\n\n"; $message .= "--" . $boundary . "--\n"; mail($destinataire,$sujet,$message,$headers);
Partager