Faire passer le serveur pour qqn...

WRInaute occasionnel
Bonjour,

J'utilise ezmlm chez OVH pour gérer mes mailing lists. Je m'inscris sans pb à la liste lorsque j'envoie la commande directement depuis le compte mail qui veut s'inscrire.
J'ai réalisé un petit script en php qui, après inscription en ligne (très classique) se charge de le faire pour toi. Mais là, ezmlm ne réagit pas.
Je pense qu'il ne me considère pas comme étant celui qui veut s'inscrire. J'ai inséré les headers suivants dans ma fonction mail :
Code:
$headers = "From: xxx@yyy.zzz\n";
$headers .= "Reply-To: xxx@yyy.zzz\n";
puis ma fonction mail (objet vide et corps du message vide) :
Code:
mail(xxx@yyy.zzz, '', '', $headers);
mais rien. Après lecture du manuel php officiel, j'ai même essayé d'ajouter un paramètre optionnel :
Code:
mail(xxx@yyy.zzz, '', '', $headers, '-fxxx@yyy.zzz');

Comment convaincre ezmlm que la commande qu'il reçoit provient bien de xxx@yyy.zzz ? Est-ce que mon problème se trouve ailleurs ?

Merci des vos avis.
 
WRInaute passionné
tu devrais essayer de rajouter ceci à ton header:

Code:
$header.="Return-path:  xxx@yyy.zzz\n";

:D
 
WRInaute discret
Code:
mail ("<nomDeTaListe>-subscribe@tonDomaine.ext", "", "", "from:adresse@aAjouter.ext");

tu remplace le <nomDeTaListe> par le nom de ta liste sans les < >. En principe cela devrait fonctionner.
 
WRInaute discret
Sinon voici un code complet qui fonctionne :

Code:
// traitement de l'adresse d'envoi (c un forcing pour l'ajouter dans la liste)
$to = "<nomDeLaListe>-subscribe-".str_replace ("@", "=", $this->email)."@tonDomaine.ext";

// traitement des headers
$headers = 'From: '.$this->email."\r\n";
$headers .= 'Reply-To: '.$this->email."\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();

// envoi du mail
mail ($to, "", "", $headers);

tu dois bien sur adapter les variables aux tiennes parce que moi je te sors ca d'une classe PHP5 que j'ai créée.
 
WRInaute occasionnel
Merci les gars : cela fonctionne. Cela met plus de temps que lorsque l'on s'inscrit directement depuis le compte mail, mais cela fonctionne.

DaMonkey : dans ton script, il semble que cela soit ton "forcing" qui permet le fonctionnement car avant, j'essayais comme dans ton message précédent (= suivant les instructions de ezmlm et d'OVH), mais cela ne fonctionnait pas. Je croyais que c'était parceque ezmlm ne savait pas clairement qui était l'expéditeur.

D'ailleurs, pourquoi dis-tu "c un forcing" ??
 
WRInaute discret
parce que c'est la manière qu'un admin peut insérer une autre adresse que la sienne, via son adresse à lui...
 
Discussions similaires
Haut