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

Langage PHP Discussion :

[Mail] Envoyer un email en php [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut [Mail] Envoyer un email en php
    Bonjour à tous,

    J'arrive à envoyer un email dans un terminal via la ligne de commande mail
    Ex: mail monemail@hotmail.com

    Par contre, l'email ne s'envoie pas quand j'utilise la fonction mail dans un script php. Voici le code au complet:

    Form.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form  name="sendemail" action="sendemail.php" method="post">
    <input type="text" name="sendemail"  size ="33" maxlength="30">
    <input type="submit"  value="Envoyer" >
    </form>
    sendemail.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php 
    $to=$_POST['sendemail'];
    $subject= 'Test';
    $message='Tester si le message est envoyé;
    $headers='MIME-Version:1.0' ."\n";
    $headers.='Content-type:text/html; charset=iso-8859-1'."\n";
    $headers.='From: monemail@hotmail.com' . "\r\n".
    'Reply-To: monemail@hotmail.com' . "\r\n".
    'X-Mailer: PHP/' . phpversion();
    
    if (mail ($to,$subject,$message,$headers)){
    echo ' Succes, email envoyé';
    }
    else {
    echo 'Echec, email non envoyé';
    }
    ?>
    Quand j'execute le script,j'obtiens le message: 'Echec, email non envoyé', .
    Le script sendemail.php appartient à apache, donc, il ne doit pas y'avoir de problème au niveau des droits, je pense.

    J'utilise postfix pour envoyer les emails.

    J'ai regardé mon fichier de log des emails, mais aucune trace m'indique pourquoi l'émail
    n'a pas été acheminé.
    Par contre, quand l'émail est envoyé avec succes en ligne de commande, là j'ai une trace.

    Je ne comprends pas pourquoi ca ne fonctionne pas avec la fonction mail de php.Quelles modifications dois-je faire?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde eventuellement la config mail dans ton php.ini.

    Sinon la fonction mail() me renvoit des erreurs de type "warning", si tu les as desactivées, tu rates peut etre une erreur explicite.

    En tout cas ton code fonctionne chez moi.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Regarde eventuellement la config mail dans ton php.ini..
    J'ai regardé, mais tout à l'aire à correct.

    Si de ton côté ca marche avec mon code, peut-tu m'envoyer la config
    de ton fichier php.ini ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai fais le test sur un config windows donc ca ne va pas t'aider.

    Tu affiches bien les warnings sinon ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu affiches bien les warnings sinon ?
    Je ne vois pas où je peux trouver les warnings. Le fichier que je consulte c'est
    mail.log, et apparemment j'ai pas de warnings.

    Ce que je viens de remarquer c'est quand j'exécute le script php sur une ligne de commande, ca fonctionne sous root.
    J'ai mis Apache comme owner du script mais ca ne fonctionne toujours pas quand j'execute le script dans une url:
    Ex: 192.168.1.45/sendemail.php.

    Donc c'est une question de droits, car mettre Apache comme owner du fichier n'est pas assez. Je suppose que la fonction mail de php ne peut être exécuté que par root!!.Comment faire alors pour permettre à apache d'excécuter cette commande ?

    Merci

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219

  7. #7
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message='Tester si le message est envoyé;
    ferme avec une quote à la fin de la chaine egalement ca devrait marcher mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message='Tester si le message est envoyé';

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sh4dow49 Voir le message
    ferme avec une quote à la fin de la chaine egalement ca devrait marcher mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message='Tester si le message est envoyé';

    heu, ça n'a aucun rapport !!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    J'ai utilisé la classe PHPMAILER, et toujours le même problème.
    L'émail s'envoie en ligne de commande et non par l'url.

    Mais au moins j'ai l'erreur suivante:
    Language string failed to load: instantiate

    Et je ne sais pas comment résoudre ce problème de language, malgré de nombreuses recherches sur google.
    Tu as une idée ?

    Merci

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par persia Voir le message
    Tu as une idée ?
    Peut-être une réponse dans ce sujet.
    A noter qu'il s'agit du 1er lien sur google.fr avec ce message d'erreur comme mots clés.
    Tu n'as pas la bonne technique de recherche...

    [EDIT]
    En fait, d'après tes informations, j'ai l'impression que le problème vient de la config de ton serveur (php.ini ou httpd.conf).
    Si ton problème avec PHPMAILER persiste, jete un oeil à cette page, des fois que tu trouves des choses intérressantes à tester...
    C'est tout ce que je peux te proposer pour l'instant.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2006
    Messages : 192
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    Peut-être une réponse dans ce sujet.
    A noter qu'il s'agit du 1er lien sur google.fr avec ce message d'erreur comme mots clés.
    Justement, ce tuto n'a règle pas le problème, c'est la raison pour laquelle
    j'ai posté

Discussions similaires

  1. [Mail] Envoyer un email à un pote
    Par popov130 dans le forum Langage
    Réponses: 10
    Dernier message: 20/07/2007, 16h05
  2. [Mail] Envoyer un email depuis un site
    Par killer_instinct dans le forum Langage
    Réponses: 13
    Dernier message: 17/04/2007, 10h12
  3. [Mail] envoi d'email avec php à l'aide de blat
    Par lahlousimo dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2007, 11h30
  4. Envoyer des email avec PHP
    Par dolf13 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 12/07/2006, 10h49
  5. [Mail] Envoyer un email
    Par naima2005 dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 23h01

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