Salut.
Je déterre ce post, mais je pense que cela pourra servir à d'autres.
Le but du jeu est de spécifier proprement l'adresse mail de l'expéditeur.
Tout d'abord, il faut écrire le header du mail.
	
	$headers = "Content-type: text/\r\nFrom: " . $mail_expediteur . "\r\n";
 Mais cela ne suffit pas. Deux solutions.
 - Sous windows 
La fonction mail() utilise le paramètre sendmail_from du php.ini.
Dans ce cas, on peut le changer dynamiquement via le ini_set() :
	
	| 12
 3
 
 |  
ini_set("sendmail_from", $mail_expediteur);
mail($mail_destinataire, $sujet_du_mail, $corps_du_mail, $headers); | 
 
 - Sous linux
Dans ce cas, la fonction mail() utilise le paramètre sendmail_path, qui localise le programme sendmail installé sur la machine.
On peut lui spécifier l'expediteur dans le php.ini de la manière suivante : 
	
	sendmail_path = /usr/sbin/sendmail -t -i -f expediteur@toto.fr
 Malheureusement pour nous, ce paramètre ne peut être changé dynamiquement avec un ini_set() (sendmail_path est PHP_INI_SYSTEM).
Du coup, on est obligé de faire autrement. Heureusement, la fonction mail() peut accepter un 5ème paramètre, passé en ligne de commande à sendmail cf. la doc.
Ce qui donne :
	
	mail($destinataire, $sujet, $corps, $headers, "-f".$mail_expediteur);
 Et voilà. Avec ça, on est capable de spécifier proprement l'adresse de l'expéditeur et d'éviter les filtres antispam.  
						
					
Partager