Bonjour,
Depuis mon site qui est hébergé sous OVH (
http://www.collaide.com) j'envoie des mails de notifications et de bienvenues..
Cependant, j'ai réalisé que mes mails arrivent dans les spam de gmail.
J'ai donc fait énormément de test hier soir pour comparer différent style de mail envoyé depuis mon site pour voir si j'étais dans une blacklist ou si j'arrivais tout de même à envoyer quelque mail qui n’irait pas dans les spam.
J'ai une fonction envoyer mail que je vous montre ici :
function htmlToText($text,$passage_ligne) // pour Passer les mail en html en text
{
// remplacé toutes le balises par... RIEN
$bbcode = array('<strong>', '</strong>','</p>','</h3>');
$text = str_replace ($bbcode, "", $text);
// Les liens
$text = preg_replace('!\<a href="(.+)">(.+)</a>!isU', '$2 (lien: $1)', $text);
$text = preg_replace('!\<a href=\'(.+)\'>(.+)</a>!isU', '$2 (lien: $1)', $text);
// Changer les <br />, <p>, <h3> en passage ligne
$br = array("<br/>", "<br />", "<br />","<br / >","<br/ >",'<h3>','<p>');
$text = str_replace($br, $passage_ligne, $text);
return($text);
}
function sendMail($mail, $sujet, $titre_html, $contenu_html) {
global $ip_serv;
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
$contenu_txt=htmlToText($contenu_html,$passage_ligne);
//=====Déclaration des messages au format texte et au format HTML.
$message_txt =
$titre_html.
$passage_ligne.
$passage_ligne.
$contenu_txt.
$passage_ligne.
$passage_ligne.
'A très vite, sur Collaide !';
$message_html = '
<div style="background-color:#eaf3ff;text-align:center;">
<h2 style="text-align:center; color: #0033CC;">'.$titre_html.'</h2>
<p>'.$contenu_html.'<br/>
<br/>
A très vite, sur <a href="'.$ip_serv.'">Collaide</a> !<br />
<img alt="Logo Collaide" src="'.$ip_serv.'/images/logo.png" /></p></div>';
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Création du header de l'e-mail.
//$entetedate = date("D, j M Y H:i:s -0600"); // Offset horaire
$header = "From: \"Contact de Collaide\" <[email protected]>".$passage_ligne;
$header.= "Reply-to: \"Contact de Collaide\" <[email protected]>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
//$header.= "Date: ".$entetedate .$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"utf-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"utf-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail, $sujet,$message,$header);
//==========
//echo 'Message_html :'.$message_html.'<br />
//Message_txt :'.$message_txt;
}
Avec cette fonction mail, les mail envoyé vons très souvent dans les spam, sauf à quelque exception près et lorsque je n'envoie aucun lien dans le mail.
J'ai essayé ensuite d'envoyer des mails bourrés de lien mais de la façon la plus simple possible : mail ($destinatair, $sujet, $message);
Avec la dernière technique, le mail arrive bien sur ma boite mail gmail au format texte et pas dans les spam. Cependant, l'adresse d'envoi et de réponse est une adresse ovh (
[email protected] ) (j'ai modifier les adresses pour éviter tout spam). De plus, le message au format texte est tout de même moins beau qu'un message au format html bien présenté.
Tout cela me prouve donc que je ne suis pas dans un blacklist mais juste que mon mail est considérer comme un spam par un filtre, et je ne sais pas pourquoi.
Que pourrais-je essayer afin d'éviter d'être dans les spam ? Que dois-je ajouter ou enlever dans ma fonction envoyer mail ? Peux-être y a-t-il une erreur dans ma fonction htmltotext qui permet de modifier de code html en format texte ?
Merci d'avance.
Cordialement,
Texicitys
Bonjour,
Depuis mon site qui est hébergé sous OVH (http://www.collaide.com) j'envoie des mails de notifications et de bienvenues..
Cependant, j'ai réalisé que mes mails arrivent dans les spam de gmail.
J'ai donc fait énormément de test hier soir pour comparer différent style de mail envoyé depuis mon site pour voir si j'étais dans une blacklist ou si j'arrivais tout de même à envoyer quelque mail qui n’irait pas dans les spam.
J'ai une fonction envoyer mail que je vous montre ici : [php]
function htmlToText($text,$passage_ligne) // pour Passer les mail en html en text
{
// remplacé toutes le balises par... RIEN
$bbcode = array('<strong>', '</strong>','</p>','</h3>');
$text = str_replace ($bbcode, "", $text);
// Les liens
$text = preg_replace('!\<a href="(.+)">(.+)</a>!isU', '$2 (lien: $1)', $text);
$text = preg_replace('!\<a href=\'(.+)\'>(.+)</a>!isU', '$2 (lien: $1)', $text);
// Changer les <br />, <p>, <h3> en passage ligne
$br = array("<br/>", "<br />", "<br />","<br / >","<br/ >",'<h3>','<p>');
$text = str_replace($br, $passage_ligne, $text);
return($text);
}
function sendMail($mail, $sujet, $titre_html, $contenu_html) {
global $ip_serv;
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
$contenu_txt=htmlToText($contenu_html,$passage_ligne);
//=====Déclaration des messages au format texte et au format HTML.
$message_txt =
$titre_html.
$passage_ligne.
$passage_ligne.
$contenu_txt.
$passage_ligne.
$passage_ligne.
'A très vite, sur Collaide !';
$message_html = '
<div style="background-color:#eaf3ff;text-align:center;">
<h2 style="text-align:center; color: #0033CC;">'.$titre_html.'</h2>
<p>'.$contenu_html.'<br/>
<br/>
A très vite, sur <a href="'.$ip_serv.'">Collaide</a> !<br />
<img alt="Logo Collaide" src="'.$ip_serv.'/images/logo.png" /></p></div>';
//==========
//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========
//=====Création du header de l'e-mail.
//$entetedate = date("D, j M Y H:i:s -0600"); // Offset horaire
$header = "From: \"Contact de Collaide\" <
[email protected]>".$passage_ligne;
$header.= "Reply-to: \"Contact de Collaide\" <
[email protected]>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
//$header.= "Date: ".$entetedate .$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========
//=====Création du message.
$message = $passage_ligne.$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"utf-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"utf-8\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========
//=====Envoi de l'e-mail.
mail($mail, $sujet,$message,$header);
//==========
//echo 'Message_html :'.$message_html.'<br />
//Message_txt :'.$message_txt;
}[/php]
Avec cette fonction mail, les mail envoyé vons très souvent dans les spam, sauf à quelque exception près et lorsque je n'envoie aucun lien dans le mail.
J'ai essayé ensuite d'envoyer des mails bourrés de lien mais de la façon la plus simple possible : mail ($destinatair, $sujet, $message);
Avec la dernière technique, le mail arrive bien sur ma boite mail gmail au format texte et pas dans les spam. Cependant, l'adresse d'envoi et de réponse est une adresse ovh (
[email protected] ) (j'ai modifier les adresses pour éviter tout spam). De plus, le message au format texte est tout de même moins beau qu'un message au format html bien présenté.
Tout cela me prouve donc que je ne suis pas dans un blacklist mais juste que mon mail est considérer comme un spam par un filtre, et je ne sais pas pourquoi.
Que pourrais-je essayer afin d'éviter d'être dans les spam ? Que dois-je ajouter ou enlever dans ma fonction envoyer mail ? Peux-être y a-t-il une erreur dans ma fonction htmltotext qui permet de modifier de code html en format texte ?
Merci d'avance.
Cordialement,
Texicitys