OVH Cloud OVH Cloud

Creer un "return path" dans la fonction mail()

4 réponses
Avatar
Eric
Bonjour à tous

Quand on regarde l'entête d'un email on y voit une ligne "return path" avec
l'adresse de l'expéditeur.
Je suppose que quand on fait "répondre" à ce message, c'est ce return path
qui est pris en compte pour l'adresse du destinataire de la réponse.

Ma question :
Comment puis-je dans le 4 ème argument de la fonction mail() spécifier une
adresse de réponse différente de l'adresse qui envoie cet email, afin que
toute réponse au message soit redirigée vers cette autre adresse.

Merci par avance
A+
Erfred

http://www.ni-cd.net/
Le monde des accumulateurs et batteries rechargeables
Ni-Cd, Ni-MH, Plomb, Li-ion, Li-po
Tout ce que vous avez rêver savoir sur le sujet, que vous soyez connaisseurs
ou débutant.

4 réponses

Avatar
Kevin

Bonjour à tous


Salut,


Je suppose que quand on fait "répondre" à ce message, c'est ce return path
qui est pris en compte pour l'adresse du destinataire de la réponse.
en effet


Comment puis-je dans le 4 ème argument de la fonction mail() spécifier une
adresse de réponse différente de l'adresse qui envoie cet email, afin que
toute réponse au message soit redirigée vers cette autre adresse.


http://www.php.net/manual/fr/function.mail.php
il y a un exemple sur la page de manuel:

<?php
mail("", "Le sujet", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}rn"
."Reply-To: webmaster@{$_SERVER['SERVER_NAME']}rn"
."X-Mailer: PHP/" . phpversion());
?>

donc en changeant un peu ce qui est plutot bof ca donnerait quelquechose
du style:

<?php
mail("", "Le sujet", $message,
"From: "
."Reply-To: "
."X-Mailer: ce qui est en X n'a pas grand interet");
?>

tu noterra bien que les headers sont bien concatenés et pas separé par
des virgules :)

bonne journée

Kevin


--
Coders don't die... They just JMP without RET

Avatar
Olivier Miakinen

Je suppose que quand on fait "répondre" à ce message, c'est ce return path
qui est pris en compte pour l'adresse du destinataire de la réponse.
en effet



Euh... non. S'il s'agit bien du champ Return-Path (et pas du champ
Reply-To), celui-ci n'est utilisé que pour les réponses automatiques
telles que les messages d'erreur « utilisateur inconnu » ou « boîte
pleine ».

Le Return-Path est créé au moment de la réception du message (et pas au
moment de l'envoi), en y plaçant la valeur du FROM d'enveloppe.

Comment puis-je dans le 4 ème argument de la fonction mail() spécifier une
adresse de réponse différente de l'adresse qui envoie cet email, afin que
toute réponse au message soit redirigée vers cette autre adresse.



Il faut positionner un champ Reply-To.

http://www.php.net/manual/fr/function.mail.php
il y a un exemple sur la page de manuel:

<?php
mail("", "Le sujet", $message,
"From: webmaster@{$_SERVER['SERVER_NAME']}rn"
."Reply-To: webmaster@{$_SERVER['SERVER_NAME']}rn"
."X-Mailer: PHP/" . phpversion());
?>


Oui, ceci est correct. Noter qu'il s'agit bien de Reply-To et pas de
Return-Path.


Avatar
Philippe Le Van
Eric wrote:
Bonjour à tous

Quand on regarde l'entête d'un email on y voit une ligne "return path" avec
l'adresse de l'expéditeur.
Je suppose que quand on fait "répondre" à ce message, c'est ce return path
qui est pris en compte pour l'adresse du destinataire de la réponse.

Ma question :
Comment puis-je dans le 4 ème argument de la fonction mail() spécifier une
adresse de réponse différente de l'adresse qui envoie cet email, afin que
toute réponse au message soit redirigée vers cette autre adresse.

Merci par avance
A+
Erfred



Bonjour,

J'avais eu le problème il y a 4 ans, je l'avais résolu à la barbare.
cf plus bas.
(peut-être qu'il y a une solution plus simple et plus classe...)

Cordialement,
Philippe
----------
function sendMail($fromAddress, $toAddress, $subject, $body, $header)
{
$fp = popen('/usr/sbin/sendmail -f'.$fromAddress.' '.$toAddress,"w");
if (!$fp) return false;
fputs ($fp, "To: $toAddressn");
fputs ($fp, "subject: $subjectn");
fputs ($fp, $header."nn");
fputs ($fp, $body);
fputs ($fp, "n");
pclose ($fp);
return true;
}
function email($from,$to,$subject,$msg,$reply="")
{
return sendMail("$from","$to","$subject","$msg","Return-Path: $from");
}

Avatar
Kevin
Euh... non. S'il s'agit bien du champ Return-Path (et pas du champ
Reply-To), celui-ci n'est utilisé que pour les réponses automatiques
telles que les messages d'erreur « utilisateur inconnu » ou « boîte
pleine ».


en effet ... la fatigue ... :)

bonne soirée :)


--
Coders don't die... they just JMP without RET