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 :

Problème d'envoi d' e-mail


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 44
    Points
    44
    Par défaut Problème d'envoi d' e-mail
    Bonjour,

    J’ai le problème suivant :

    Je voudrais pouvoir envoyer des e-mails à partir de mon code PHP. J’ai essayé le code PHP suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    		 $subject = "Hello!";
    		 $body = "Hello,\n\nHow are you?";
     
    		 if ($e_mail, $subject, $body)) 
    		 {
    			echo("<p>Message successfully sent!</p>");
    		 } else 
    		 {
    			echo("<p>Message delivery failed...</p>");
    		 }
    	?>
    Le navigateur me renvoie le message d’erreur suivant :

    Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in (xxx).php on line 5
    Pourtant, j’ai bien modifié, dans C:\wamp\bin\php\php5.3.\ php.ini, la ligne initialement « SMTP = localhost » en « SMTP = smtp.orange.fr », et ensuite, j’ai rebooté ma machine.

    Je ne comprends pas où l’interpréteur trouve encore le mot « localhost ». N’ai-je pas écrit dans le bon fichier php.ini ? Comment faire avec la fonction ini_set() ?

    Merci d'avance,

    Zorglbug

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Points : 915
    Points
    915
    Par défaut
    Bonjour,
    Que donne ce code?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $var=ini_get('SMTP');
    echo 'la valeur de smtp '.$var;
    ?>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 44
    Points
    44
    Par défaut
    Bonjour Kabkab,

    ces lignes de code donnent :

    la valeur de smtp localhost

    Z

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 015
    Points : 182
    Points
    182
    Par défaut email en php
    Bonjour,

    Si tu fais les tests en localhost, il me semble que cela ne marche pas.J'utilise easyphp chez moi est l'envoi ne marché pas puis j'ai testé le code sur un serveur et ça à fonctionné.
    Moi j'ai mis ce code sans changer les attributs est ça marche donc si cela peut t'aider :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
     
    $msg_erreur = "Les champs suivants doivent être remplis :<br/><br/>";
    $msg_ok = "Votre demande a bien été prise en compte.";
    $message = $msg_erreur;
    define('MAIL_DESTINATAIRE','adressemail@xxxx.fr'); // remplacer par votre email
    define('MAIL_SUJET','Bulletin');
     
    // vérification des champs
    if (empty($_POST['civilite']))
    $message .= "Votre civilité<br/>";
    if (empty($_POST['nom']))
    $message .= "Votre nom<br/>";
    if (empty($_POST['prenom']))
    $message .= "Votre prenom<br/>";
    if (empty($_POST['situation']))
    $message .= "Votre situation<br/>";
     
     
    // si un champ est vide, on affiche le message d'erreur et on stoppe le script
    if (strlen($message) > strlen($msg_erreur))
    {
        $message;die();
    }
     
    // sinon c'est ok => on continue
    foreach($_POST as $index => $valeur) {
      $$index = stripslashes(trim($valeur));
    }
     
     
    //Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From: {$_POST['nom']} "."<{$_POST['email']}>\r\n";
    $mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    // préparation du corps du mail
     
     
    $mail_corps  = "Message de : $civilite $nom $prenom\n";
    $mail_corps .= "Situation : $situation\n";
    $mail_corps .= "Adresse : $adresse $code_post $ville\n";
     
     
     
    // envoi du mail
    if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete))
     
    {
      //Le mail est bien expédié
       $msg_ok;
    }
    else
    {
      //Le mail n'a pas été expédié
       "Une erreur est survenue lors de l'envoi du formulaire par email";
    }
     
     
    ?>
     
    <? include("inc/site-bas.inc.php"); ?>

  5. #5
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Points : 915
    Points
    915
    Par défaut
    Bonjour,
    Pour l'utilisation du mail en local, il y a l'astuce du fake sendmail ici : http://glob.com.au/sendmail/

    Cela devrait résoudre le problème.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 44
    Points
    44
    Par défaut
    Merci Kabkab et Peter11 pour vos suggestions.

    Je vais les tester dans les jours qui viennent ; je vous tiens au courant.

    Zorglbug

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 44
    Points
    44
    Par défaut
    J'ai du nouveau :

    Je n'avais pas remarqué qu'il existait un autre "php.ini", dans le répertoire : "c:\wamp\bin\apache2.2.21\bin".

    je n'avais modifié que celui se trouvant dans "c:\wamp\bin\php\php5.3.8


    Apparemment, c'est celui qui se trouve dans "c:\wamp\bin\apache2.2.21\bin" qui est pris en compte, car maintenant, je n'ai plus le message d'erreur :

    Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port"

    mais le message d'erreur suivant :

    SMTP server response: XXX X.X.X Emetteur invalide. Invalid Sender. OFR204_405 [405] in ...

    J'ai vu qu'il y a des réponses, sur le forum Developpez.net concernant cette erreur : OFR204_405

    Je vais les étudier.

    Zorglbug

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Points : 44
    Points
    44
    Par défaut
    Bon, ça y est, ça marche.

    Il suffisait maintenant de formater le courrier correctement.
    Merci à tous pour votre aide,

    Zorglbug

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'envoi d'e-mail en SMTP
    Par hoyohoyo dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 17/04/2012, 00h48
  2. Problème d'envoi / réception de mails avec Exchange
    Par cynoq dans le forum Exchange Server
    Réponses: 0
    Dernier message: 09/07/2010, 18h37
  3. [Toutes versions] Problème d'envoi / réception de mails avec Exchange
    Par cynoq dans le forum Outlook
    Réponses: 0
    Dernier message: 09/07/2010, 12h49
  4. Problème d'envoie de mail par SMTP
    Par yass dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 12/09/2008, 17h45
  5. Problème d'envoi d'e-mail
    Par baleiney dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 02/01/2007, 11h27

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