Faire passer le serveur pour qqn...


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 393
Inscription: 29 Déc 2004

Faire passer le serveur pour qqn...

Message le Jeu Juin 08, 2006 21:02

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: Tout sélectionner
$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: Tout sélectionner
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: Tout sélectionner
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.


fandecine
Modérateur
Modérateur
 
Messages: 2047
Inscription: 2 Avr 2005

Message le Jeu Juin 08, 2006 23:04

tu devrais essayer de rajouter ceci à ton header:

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


:D


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 393
Inscription: 29 Déc 2004

Message le Ven Juin 09, 2006 8:01

Merci fandecine, je vais essayer de ce pas !

DaMonkey
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: 20 Fév 2004

Message le Ven Juin 09, 2006 10:01

Code: Tout sélectionner
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.

DaMonkey
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: 20 Fév 2004

Message le Ven Juin 09, 2006 10:05

Sinon voici un code complet qui fonctionne :

Code: Tout sélectionner
// 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.


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 393
Inscription: 29 Déc 2004

Message le Ven Juin 09, 2006 12:43

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" ??

DaMonkey
WRInaute discret
WRInaute discret
 
Messages: 79
Inscription: 20 Fév 2004

Message le Ven Juin 09, 2006 13:45

parce que c'est la manière qu'un admin peut insérer une autre adresse que la sienne, via son adresse à lui...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Web Accelerator



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités