Maison  >  Questions et réponses  >  le corps du texte

Le mailer PHP fonctionne-t-il sur localhost ou y a-t-il un problème ici ?

Je continue de recevoir un message d'erreur lorsque j'essaie d'envoyer un e-mail à l'aide du mailer PHP (localhost). Ou le mailer php ne fonctionnera pas sur localhost ?

<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';


//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

    try {
        //Server settings
        $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
        $mail->isSMTP();                                            //Send using SMTP
        $mail->Host       = 'smtp.gmail.com';                     //Set the SMTP server to send through
        $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
        $mail->Username   = 'default@gmail.com';                     //SMTP username
        $mail->Password   = '00000120';                               //SMTP password
        // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
        $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

        //Recipients
        $mail->setFrom('NatsuDragneelxd42069@gmail.com', 'Mailer');
        $mail->addAddress('Received@gmail.com', 'Joe User');     //Add a recipient
        //$mail->addAddress('ellen@example.com');               //Name is optional
        $mail->addReplyTo('Noreply@gmail.com', 'Info');
        // $mail->addCC('cc@example.com');
        // $mail->addBCC('bcc@example.com');

        //Attachments
        // $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
        // $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name

        //Content
        $mail->isHTML(true);                                  //Set email format to HTML
        $mail->Subject = 'Here is the subject';
        $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
        $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
    }

Voici l'erreur que j'obtiens :

Serveur-> Client : Erreur SMTP : impossible de se connecter à l'hôte SMTP. Le message n'a pas pu être envoyé. Erreur de messagerie : Erreur SMTP : Impossible de se connecter à l'hôte SMTP.

P粉969253139P粉969253139260 Il y a quelques jours372

répondre à tous(1)je répondrai

  • P粉364129744

    P粉3641297442024-02-26 11:12:42

    Je ne sais pas pourquoi vous avez commenté cette ligne, mais cela fera échouer la connexion car il tentera d'établir une connexion non cryptée vers un port qui nécessite un cryptage :

    // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;

    Décommentez et vous aurez peut-être plus de chance. Vous pouvez également essayer de définir SMTPDebug = SMTP::DEBUG_CONNECTION car il vous donnera plus d'informations sur la phase TLS de la connexion.

    Cela ne résoudra peut-être pas tout votre problème puisque Gmail (à partir de mai 2022) n'autorise plus l'authentification à l'aide d'un identifiant et d'un mot de passe normaux. Vous devrez passer à XOAUTH2 (pris en charge par PHPMailer) ou créer un mot de passe d'application dans la console Gmail.

    Notez également que Gmail ne vous permet d'utiliser aucune adresse, uniquement votre 用户名 adresse et un alias prédéfini.

    Tout cela est couvert dans le

    Guide de dépannage PHPMailer.

    répondre
    0
  • Annulerrépondre