Bien envoyer un email en PHP via mail()

Publié le 22 novembre 2012 par Menerve
J'ai du récemment vérifier le bon acheminement d'emails envoyés via PHP et la fonction mail().
Voici le code nécessaire, d'après mon expérience, pour que le mail soit recu aussi bien sur des comptes Hotmail (qui pose le + problème), Gmail, Free et autres. A noter que si vos problèmes persistent, vous pouvez vous tourner vers la classe PHP mailer.
if (isset($_REQUEST['email']))
{
	$headers = 'From:'.$_REQUEST['email']."\r\n";
	$headers .= 'Return-Path:<'.$_REQUEST['email'].">\r\n"; 
	$headers .= 'Reply-To:'.$_REQUEST['email'] . "\r\n" . 'X-Mailer:PHP/' . phpversion();
	$params = '-f '.$_REQUEST['email'];
	var_dump(mail($_REQUEST['email'], 'Titre', "Corps du message", $headers, $params));
}
A noter:
Pour les headers: pas d'espace entre From:, Cc:,... et l'email; présence conseillée des Return-Path, Reply-To et X-Mailer
Pour les paramètres: définir -f (l'expéditeur)