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 :

Phpmailer & SMTP Google


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut Phpmailer & SMTP Google
    Bonjour à tous,

    J'ai essayé beaucoup de solutions proposées pour exploiter via PhpMailer le SMTP de Google, rien de fonctionne, je tourne en rond :
    Google n'autorise plus l'accès aux applications moins sécurisées, j'ai donc créé une authentification 2 facteurs, un mot de passe dédié pour les applications externes (https://myaccount.google.com/apppasswords).
    J'ai toujours la même erreur :
    2025-01-28 11:45:45 CLIENT -> SERVER: EHLO www.monsite.fr
    2025-01-28 11:45:45 CLIENT -> SERVER: STARTTLS
    2025-01-28 11:45:45 CLIENT -> SERVER: EHLO www.monsite.fr
    2025-01-28 11:45:45 CLIENT -> SERVER: AUTH LOGIN
    2025-01-28 11:45:45 CLIENT -> SERVER: [credentials hidden]
    2025-01-28 11:45:45 CLIENT -> SERVER: [credentials hidden]
    2025-01-28 11:45:45 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. For more information, go to535 5.7.8 https://support.google.com/mail/?p=BadCredentials 5b1f17b1804b1-438bd4857cesm164048125e9.13 - gsmtp
    SMTP Error: Could not authenticate.
    Mon code réduit au plus simple :

    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
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    require 'PHPMailer-master/src/Exception.php';
    require 'PHPMailer-master/src/PHPMailer.php';
    require 'PHPMailer-master/src/SMTP.php';
     
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Mailer = "smtp";
    $mail->SMTPDebug  = 1;  
    $mail->SMTPAuth   = TRUE;
    $mail->SMTPSecure = "tls";
    $mail->Port       = 587;
    $mail->Host       = "smtp.gmail.com";
    $mail->Username   = "noreply@monsite.com";
    $mail->Password   = "monpasse";
    $mail->IsHTML(true);
    $mail->AddAddress("noreply@monsite.com", "PMO");
    $mail->SetFrom("noreply@monsite.com", "PMO");
    $mail->AddReplyTo("noreply@monsite.com", "PMO");
    $mail->Subject = "Test  Mailer";
    $content = "<b>Test PHP mailer.</b>";
    $mail->MsgHTML($content); 
    if(!$mail->Send()) {
      echo "KO";
      var_dump($mail);
    } else {
      echo "OK";
    }
    Quelqu'un aurait il trouvé la solution ?
    Merci à vous

  2. #2
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 441
    Par défaut
    Bonjour,

    Essaye de reprendre l'exemple de la doc https://github.com/PHPMailer/PHPMail...les/gmail.phps
    en modifiant ces données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $mail->Username = 'username@gmail.com'; // ton adresse gmail
     
    $mail->Password = 'yourpassword'; // le mdp sur 16-digit que tu as créé sur myaccount.google.com/apppasswords
     
    $mail->addAddress('username@gmail.com', 'John Doe'); // ton adresse gmail pour vérifier la réception
     
    $mail->msgHTML("<b>It's work!</b>", __DIR__); // définir le contenu html du message
     
    //$mail->addAttachment('images/phpmailer_mini.png'); // désactiver l'ajout de pièce jointe

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    surtout que dans cet exemple, c'est le smtp de Google qui est utilisé : $mail->Host = 'smtp.gmail.com';

  4. #4
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    @Laurent : oui c'est aussi celui que j'utilise (cf ligne 14)

    @Pytet : le code est vieux il a 4 ans à l'époque Google autorisait encore les "applications moins sécurisées". Aujourd'hui c'est mort.

    Ce qui me surprend c'est qu'on peut utiliser le SMTP de Google via un Prestashop par exemple toujours en demandant un passe via https://myaccount.google.com/apppasswords.

  5. #5
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 441
    Par défaut
    J'ai testé hier l'exemple indiqué dans mon précédent message avec mon compte gmail et le mail a bien été envoyé et reçu.

    Sinon, la solution est alors d'utiliser le procole OAuth2 :
    https://github.com/PHPMailer/PHPMail...ss-secure-apps
    https://github.com/PHPMailer/PHPMail...gle-API-Client

  6. #6
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Hello Pytet,
    Et oui... j'ai enfin compris pourquoi ca ne fonctionnait pas, Google à 2 reprises à supprimé les Credentials / le passe.
    C'est le nouveau mystère !
    Grand merci pour ton aide.

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

Discussions similaires

  1. PHPMailer - Config SMTP ignorée
    Par Soyuz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 30/10/2012, 15h47
  2. [PHPMailer] Authentification SMTP
    Par elvan49 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 08/01/2011, 21h38
  3. [E-mail] Envoi en utilisant le serveur SMTP Google Mail
    Par Esteban17 dans le forum Langage
    Réponses: 5
    Dernier message: 13/11/2009, 14h47
  4. [PHPmailer] Envoi SMTP qui n'aboutit pas
    Par lodan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 15/08/2009, 20h59
  5. [PHPMailer] Problème SMTP
    Par meliandah dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/05/2007, 16h44

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