|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 2 ![]() |
Bonjour à tous,
J'ai un souci avec l'envoi des emails en php via la fonction mail qui elle-même utilise sendmail. Les serveur en question est un RedHat Enterprise 5, la fonction mail est utilisée depuis un apache qui utilise une queue locale et la fonction sendmail. Aucun souci de sécurité, les emails passent très bien en ligne de commande, même sur les adresses externes. Maintenant, pratiquement tous les systèmes email font un reverse lookup pour vérifier que la provenance de l'email est valide, et c'est là que j'ai un problème. Avec la fonction mail, je n'arrive pas à spécifier un expéditeur depuis le code php en utilisant par exemple ini_set avec sendmail_from. Pour éviter que l'envoi d'email se fasse avec un sender autre que user@monserveur.mondomaine.com (et vu que cette adresse est inconnue, elle est rejetée), j'ai carrément spécifié dans /etc/php.ini, l'option -f avec une adresse email valide dans le paramètre "sendmail_path". Néanmoins, cette méthode n'est pas élégante car le développeur n'a pas moyen de la changer dans le code php... c'est à l'administrateur système (donc moi) de la setter. Est-ce que quelqu'un a une idée sur comment on peut utiliser cette fonction avec un sender défini dans le php ? Spécifier le sender dans les headers ne change rien au problème. Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : janvier 2004 Messages : 242 ![]() |
normal, il faut le spécifier a la fonction mail, pas a la ligne de commande sendmail -t -i...
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : septembre 2007 Messages : 2 ![]() |
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Kenny Kill Inscription : janvier 2010 Messages : 1 ![]() |
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. Code :
$headers = "Content-type: text/\r\nFrom: " . $mail_expediteur . "\r\n"; - 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() : Code :
- 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 : Code :
sendmail_path = /usr/sbin/sendmail -t -i -f expediteur@toto.fr 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 : Code :
mail($destinataire, $sujet, $corps, $headers, "-f".$mail_expediteur); |
||
|
|
10
|
|
|
#5 |
|
Invité de passage
![]() Grégory Webdesigner Inscription : novembre 2012 Messages : 1 ![]() |
Bonjour,
je déterre également ce sujet car c'est exactement ma problématique. J'ai le sendmail_path configuré dans le php.ini pour le site en question. Mais pour un sous-domaine, l'adresse du sender doit être différente. J'essaie donc de mettre la bonne adresse dans le 5eme paramètre de mail, mais la fonction s’arrête de fonctionner :/ J'ai regardé les logs d'erreur, mais il n'y a rien par rapport à ce problème Code :
mail($to,$subject,$message,$header,"-f".$from); mais ça ne marche pas non plus (au cas où, on sait jamais…) Bref, c'est la galère :/ PHP 5.3.6 Merci à tous |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com