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 :

envoyer un mail avec phpmailer [Wamp]


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut envoyer un mail avec phpmailer
    Bonsoir,

    mon besoin est d'envoyer un mail en local (depuis wampserver). ayant lu ici : http://www.developpez.net/forums/d15...on-wampserver/ qu'il était mieux d'utiliser phpmailer, je l'ai fait.

    Mais :
    Code php : 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
            require "../../../_lib/class.phpmailer.php";
            $mail = new PHPmailer();
    	$monadresse='xxx';
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='smtp.orange.fr:587';
    	$mail->SMTPAuth='true';
            $mail->From=$monadresse;
            $mail->AddAddress($adrmail);
            $mail->AddReplyTo($monadresse);     
            $mail->Subject='Exemple trouvé sur DVP';
            $mail->Body='Voici un exemple d\'e-mail au format Texte';
            if(!$mail->Send()){ //Teste le return code de la fonction
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
    	$mail->SmtpClose();
            unset($mail);]
    J'ai aussi essayé sans SMTP. Le FAI est orange et ici : http://www.developpez.net/forums/d36...-smtp-modifie/, j'ai vu que le bon port chez orange était 587.

    Dans php.ini, j'ai également mis ces informations :
    Code php.ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    [mail function]
    ; For Win32 only.
    ; http://php.net/smtp
    SMTP = smtp.orange.fr
    ; http://php.net/smtp-port
    smtp_port = 587
    néanmoins, j'ai 3 messages d'erreur :
    Warning: include_once(class.smtp.php): failed to open stream: No such file or directory in C:\wamp\www\_lib\class.phpmailer.php on line 515
    Warning: include_once(): Failed opening 'class.smtp.php' for inclusion (include_path='.;C:\php\pear') in C:\wamp\www\_lib\class.phpmailer.php on line 515
    Fatal error: Class 'SMTP' not found in C:\wamp\www\_lib\class.phpmailer.php on line 583
    Que faut-il faire ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,

    Il faut... lire et comprendre les messages d'erreur.

    Indice : corriger le premier devrait régler les trois.

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Merci Jérôme ; j'avais vu ta réponse vers 8h15 (merci de te lever à l'aube pour me répondre). Je n'imaginais pas que en téléchargeant PHPMailer-FE_v4.11.zip, il manquerait un fichier. Néanmoins Google m'a trouvé smtp.class.php. Pour mémoire : https://github.com/PHPMailer/PHPMail...class.smtp.php et pour avoir le code sans les numéros de ligne, bouton "raw". Grâce à ça plus aucune erreur PHP...mais
    SMTP Error: Could not connect to SMTP host.
    J'ai indiqué comment j'affecte host dans le post #1. Comment corriger ce nouveau problème ?

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Je viens de modifier légèrement mon code d'envoi de mail au cas où, mais ça ne change rien :

    Code php : 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
     
            $adrmail=$_POST['mail'];      
            require "../../../_lib/class.phpmailer.php";
            $mail = new PHPmailer();
    	$monadresse='---';
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='smtp.orange.fr';
    	$mail->Port='587'; //port défini sur une ligne à part
    	$mail->SMTPAuth='true';
            $mail->From=$monadresse;
            $mail->AddAddress($adrmail);
            $mail->AddReplyTo($monadresse);     
            $mail->Subject='Exemple trouvé sur DVP';
            $mail->Body='Voici un exemple d\'e-mail au format Texte';
            if(!$mail->Send()){ //Teste le return code de la fonction
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
    		$mail->SmtpClose();
            unset($mail);

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    pour tester l'envoi de mail par SMTP, j'ai vu qu'il y avait moyen de le tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ping nomduserveur.domaine ou ping adresse_ip 
    //Si le ping reconnaît l'hôte, vous pouvez tenter de vous connecter
    telnet nomduserveur.domaine 25 -> 25 est le port habituel pour les connexions SMTP
    //Les commandes suivantes sont les commandes SMTP classique
    HELO nom_de_domaine_local
    MAIL FROM:<adresse@from>
    Selon les cas, l'adresse de l'expéditeur peut-être n'importe quoi i.e jamesbond@hotmail.com pourvu que la syntaxe soit correcte
    RCPT TO:<adresse@destinataire>
    DATA
    Les données
    .
    //Le corps de l'e-mail, terminer par un "." seul                
    quit
    . Au début, j'ai zappé le ping et suis tout de suite passé à telnet. J'ai vu que sous Windows 7, il fallait l'activer. Mais après activation telnet smtp.orange.fr 487 donne échec (dans mes recherches, j'ai vu que pour orange, ils parlaient aussi du port 465 mais échec aussi. J'ai alors vu que j'avais zappé le ping. Donc j'ai essayé ping smtp.orange.fr sauf que ça demande d'entrer un message Envoi d'une requête 'ping' etc mais que je n'ai pas la main pour le saisir et au bout de 4-5 secondes, "délai d'attente de la demande dépassé". Donc, comment faire ?

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Après un petit tour sur un forum chez Orange et Google, j'ai un peu modifié mon code :
    Code php : 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
            require "../../../_lib/class.phpmailer.php";
            $mail = new PHPmailer();
    	$monadresse='---';
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='smtp.orange.fr';
    	$mail->Port='465';             //port modifié suite au forum Orange
    	$mail->SMTPSecure = 'ssl'; // suite au forum Orange se mettre en SSL
    	$mail->Username    = "2 essais : adresse mail complète et numéro_de_mobile@orange.fr";
    	$mail->Password    = "mot_de_passe_créé_sur_internet";
    	$mail->SMTPAuth='true';
            $mail->From=$monadresse;
            $mail->AddAddress($adrmail);
            $mail->AddReplyTo($monadresse);     
            $mail->Subject='Exemple trouvé sur DVP';
            $mail->Body='Voici un exemple d\'e-mail au format Texte';
    		$mail->SMTPDebug = 2;    // au cas où...
            if(!$mail->Send()){ //Teste le return code de la fonction
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
    		$mail->SmtpClose();
            unset($mail);
    mais encore erreur SMTP. Une idée ?

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    j'ai un peu avancé et modifié mon code :

    Code php : 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
     
            require "../../../_lib/class.phpmailer.php";
            $mail = new PHPmailer();
    	$monadresse='---';
    	$mail->IsSMTP();
    	$mail->IsHTML(true);
    	$mail->Host='smtp.orange.fr';
    	$mail->Port='465';
    	$mail->SMTPSecure = 'ssl';
    	$mail->Encoding = "base64";
    	$mail->Username    = base64_encode("soit adr mail complète, soit numero_mobile@orange.fr");
    	$mail->Password    = base64_encode("mdp_associé");
    	$mail->SMTPAuth='true';
            $mail->From=$monadresse;
            $mail->AddAddress($adrmail);
            $mail->AddReplyTo($monadresse);     
            $mail->Subject='Exemple trouvé sur DVP';
            $mail->Body='Voici un exemple d\'e-mail au format Texte';
    		$mail->SMTPDebug = 2;
            if(!$mail->Send()){ //Teste le return code de la fonction
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
    		$mail->SmtpClose();
            unset($mail);
    mais toujours erreur SMTP ; une piste ?

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    comme je suis submergé par les réponses , je n'ai pas de solution...

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Je "réveille" cette discussion, car j'ai certes une solution, mais loin d'être satisfaisante (pour faire l'envoi de mail en local, je mets dans mon code en local une iframe vers un serveur de Free (donc hébergement gratuit) qui se charge de l'envoi du mail).

    J'ai quand même réessayé d'utiliser phpmailer en local, mais :
    2017-01-14 21:27:13 SMTP ERROR: Failed to connect to server: (0) SMTP Error: Could not connect to SMTP host.
    Code php : 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
     
    <?php
     error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));
     $adrmail='mon_adresse@schneider-electric.com';        // le FAI de Schneider est Orange
     
    	require("class.phpmailer.php");
     
           $mail = new PHPmailer();
     
    	   $monadresse='mon_adresse@schneider-electric.com';
     
    	   $mail->IsSMTP();
     
    	   $mail->IsHTML(true);
     
    	   $mail->Host='smtp.orange.fr';
     
    	   $mail->Port='587';
     
    	   $mail->SMTPSecure = 'ssl';
     
    	   //$mail->Encoding = "base64";
     
    	   $mail->Username    = "mon_adresse@schneider-electric.com";
     
    	   $mail->Password    = "----";
     
    	   $mail->SMTPAuth='true';
     
            $mail->From=$monadresse;
     
            $mail->AddAddress($adrmail);
     
            $mail->AddReplyTo($monadresse);     
     
            $mail->Subject='Exemple trouvé sur DVP';
     
            $mail->Body='Voici un exemple d\'e-mail au format Texte';
     
            $mail->SMTPDebug = 2;
     
            if(!$mail->Send()){ //Teste le return code de la fonction
     
              echo $mail->ErrorInfo; 
     
            }
     
            else{     
     
              echo 'Mail envoyé avec succès';
     
            }
     
            $mail->SmtpClose();
     
            unset($mail);
     
     
     
    ?>

    peut-on m'aider ?

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

Discussions similaires

  1. Envoyer un Mail avec PHPMailer
    Par solo190 dans le forum Langage
    Réponses: 2
    Dernier message: 18/01/2018, 14h28
  2. Envoyer un mail avec PHPMailer
    Par Arketran dans le forum Langage
    Réponses: 5
    Dernier message: 23/04/2013, 10h46
  3. Réponses: 6
    Dernier message: 02/03/2013, 01h15
  4. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 12h27

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