Personne aime que son message atterrisse dans le dossier SPAM, ni même qu'il soit pas reçu du tout, on va essayer de donner quelques conseils pour que l'envoi se fasse dans les meilleurs conditions.
Conseils:
- Utiliser des retours à la ligne pour les entêtes:
\r\n en utilisant des guillemets double " sinon il seront pas pris en compte, ex:
$Entetes = 'MIME-Version: 1.0\r\n'; //ne fonctionnera pas
$Entetes = "MIME-Version: 1.0\r\n";//fonctionnera
//une version plus propore consiste à créer un tableau $Entetes que vous "imploderez" de \r\n :
$Entetes = [];
$Entetes[] = "MIME-Version: 1.0";
$Entetes[] = "Content-type: text/html; charset=UTF-8";
$Entetes[] = "etc..";
//puis:
$Entetes = implode("\r\n",$Entetes);
//une autre méthode avec la concaténation:
$Entetes =
"MIME-Version: 1.0\r\n" .
"Content-type: text/html; charset=UTF-8\r\n" .
"etc..\r\n";
- Si utilisation d'une adresse en "noreply", il faut quelle soit du même domaine d'où est envoyé le mail (et l'adresse mail qui envoi aussi)
- Définir l'entête Content-Type en "text/html" si du HTML est inclus (comme c'est souvent le cas)
- ?
J'arrive à un score de 8.7 avec
ma fonction mail()
Code pour envoyer un mail correctement:
//configuration
$mail_expediteur="mon@email";
$mail_destinataire="son@email";
$titre="Titre du mail";
$msg="Contenu du mail HTML avec <strong>des balises</strong> HTML";
//entêtes
$Entetes=[];
$Entetes[] = "MIME-Version: 1.0";
$Entetes[] = "Content-type: text/html; charset=UTF-8";
$Entetes[] = "From: Mon site <$mail_expediteur>";
$Entetes[] = "Reply-To: Mon site <$mail_expediteur>";
//envoi
if(mail($mail_destinataire,"=?UTF-8?B?".base64_encode($titre)."?=",$msg,implode("\r\n",$Entetes))){
echo "ok";
} else{
echo "pas ok";
}
Il me reste à utiliser DKIM (Le -1 dans l'image dessous), List-Unsubscribe et améliorer les recommandations "SpamAssassin" pour l'améliorer

Personne aime que son message atterrisse dans le dossier SPAM, ni même qu'il soit pas reçu du tout, on va essayer de donner quelques conseils pour que l'envoi se fasse dans les meilleurs conditions.
Conseils:
- Utiliser des retours à la ligne pour les entêtes: [b]\r\n[/b] en utilisant des guillemets double " sinon il seront pas pris en compte, ex:
[PHP]$Entetes = 'MIME-Version: 1.0\r\n'; //ne fonctionnera pas
$Entetes = "MIME-Version: 1.0\r\n";//fonctionnera
//une version plus propore consiste à créer un tableau $Entetes que vous "imploderez" de \r\n :
$Entetes = [];
$Entetes[] = "MIME-Version: 1.0";
$Entetes[] = "Content-type: text/html; charset=UTF-8";
$Entetes[] = "etc..";
//puis:
$Entetes = implode("\r\n",$Entetes);
//une autre méthode avec la concaténation:
$Entetes =
"MIME-Version: 1.0\r\n" .
"Content-type: text/html; charset=UTF-8\r\n" .
"etc..\r\n";
[/PHP]
- Si utilisation d'une adresse en "noreply", il faut quelle soit du même domaine d'où est envoyé le mail (et l'adresse mail qui envoi aussi)
- Définir l'entête Content-Type en "text/html" si du HTML est inclus (comme c'est souvent le cas)
- ?
J'arrive à un score de 8.7 avec [url=https://www.c2script.com/scripts/formulaire-de-contact-php-s6.html]ma fonction mail()[/url]
Code pour envoyer un mail correctement:
[PHP]//configuration
$mail_expediteur="mon@email";
$mail_destinataire="son@email";
$titre="Titre du mail";
$msg="Contenu du mail HTML avec <strong>des balises</strong> HTML";
//entêtes
$Entetes=[];
$Entetes[] = "MIME-Version: 1.0";
$Entetes[] = "Content-type: text/html; charset=UTF-8";
$Entetes[] = "From: Mon site <$mail_expediteur>";
$Entetes[] = "Reply-To: Mon site <$mail_expediteur>";
//envoi
if(mail($mail_destinataire,"=?UTF-8?B?".base64_encode($titre)."?=",$msg,implode("\r\n",$Entetes))){
echo "ok";
} else{
echo "pas ok";
}[/PHP]
Il me reste à utiliser DKIM (Le -1 dans l'image dessous), List-Unsubscribe et améliorer les recommandations "SpamAssassin" pour l'améliorer :D
[img]https://i.ibb.co/zHNqGbK/Screenshot-2021-11-21-at-19-06-41-R-sultat-du-Test-de-Spam.png[/img]