La fonction
mail() en PHP accepte cinq paramètres:
mail( string to, string subject, string message [, string additional_headers [, string additional_parameters]] ). Seuls les trois premiers sont obligatoires. Le quatrième devrait aussi être rempli; il s'agit de donner un expéditeur au mail (c'est à cette adresse que répondra une personne qui répondrai au mail reçu). À l'aide du cinquième, on peut faire en sorte que les bounces partent à une adresse précise, plutôt que l'administrateur machines SysCo.
mail("client@sonprovider.ch", "Sujet du mail", "Bonjour,\r\n\r\nAu revoir\r\n", "From: webmaster@agenceweb.com", "-fwebmaster@agenceweb.com")
De cette manière, si 'client@sonprovider.ch' existe, reçoit le mail et y répond, c'est webmaster@agenceweb.com qui recevra la réponse, grâce au 4e paramètre.
De même, si 'client@sonprovider.ch' n'existe pas (ou toute autre erreur), c'est webmaster@agenceweb.com (grâce au 5e paramètre) qui recevra le mail en retour, notifiant ainsi l'erreur. Notez que -fdoit être collé à l'adresse.
Ceci ne fonctionne pas avec PHP sous Windows, mais tout n'est pas perdu grâce à l'astuce suivante: faire un @ini_set("sendmail_from", "webmaster@agenceweb.com") avant d'appeler la fonction mail("client@sonprovider.ch", "Sujet du mail", "Bonjour,\r\n\r\nAu revoir\r\n", "From: webmaster@agenceweb.com"). Le @ devant la fonction ini_set permet de ne pas retourner l'erreur si le serveur refuse ce changement de valeur.