IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Configuration] sendmail_path et sender


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Configuration] sendmail_path et sender
    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.

  2. #2
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    normal, il faut le spécifier a la fonction mail, pas a la ligne de commande sendmail -t -i...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par chaced Voir le message
    normal, il faut le spécifier a la fonction mail, pas a la ligne de commande sendmail -t -i...
    Tu peux préciser STP ?

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Points : 4
    Points
    4
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = "Content-type: text/\r\nFrom: " . $mail_expediteur . "\r\n";
    Mais cela ne suffit pas. Deux solutions.

    - 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ini_set("sendmail_from", $mail_expediteur);
    mail($mail_destinataire, $sujet_du_mail, $corps_du_mail, $headers);

    - 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    sendmail_path = /usr/sbin/sendmail -t -i -f expediteur@toto.fr
    Malheureusement pour nous, ce paramètre ne peut être changé dynamiquement avec un ini_set() (sendmail_path est PHP_INI_SYSTEM).
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($destinataire, $sujet, $corps, $headers, "-f".$mail_expediteur);
    Et voilà. Avec ça, on est capable de spécifier proprement l'adresse de l'expéditeur et d'éviter les filtres antispam.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($to,$subject,$message,$header,"-f".$from);
    J'ai essayé aussi le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set("sendmail_from", $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

Discussions similaires

  1. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 16h28
  2. [configuration] lancer plusieurs serveurs Tomcat
    Par polo54 dans le forum JBuilder
    Réponses: 4
    Dernier message: 13/06/2003, 16h52
  3. Configurer OpenGL/Glut avec C++Bluider
    Par MiGoN dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/09/2002, 00h18
  4. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 12h33
  5. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo