Naviguer dans PHPMailer sans l'option « Applications moins sécurisées » après le 30 mai 2022
P粉039633152
P粉039633152 2023-10-24 15:59:12
0
2
506

J'utilise PHPMailer depuis longtemps pour envoyer des e-mails en utilisant les identifiants Google (identifiant et mot de passe) en activant l'option“不太安全的应用程序”dans les paramètres Google.

Google informe qu'après le 30 mai 2022, Google n'autorisera plus l'utilisation de“安全性较低的应用”pour envoyer des emails.

Applications moins sécurisées et votre compte Google

Existe-t-il un autre moyen d'envoyer des e-mails en utilisant Gmail SMTP depuis PHPMailer sans utiliser la fonctionnalité“安全性较低的应用程序”?

P粉039633152
P粉039633152

répondre à tous (2)
P粉127901279

Cette méthode a fonctionné pour moi, vous pouvez essayer ceci :

  1. Accédez d’abord à la gestion de votre compte Google, puis à la sécurité.
  2. Assurez-vous que votre vérification en 2 étapes est activée.
  3. Ensuite, accédez au mot de passe de l'application.
  4. Sélectionnez Autre dans le menu déroulant Sélectionner une application et nommez-la selon vos préférences.
  5. Cliquez ensuite sur "Générer" et Google vous donnera un mot de passe. Assurez-vous de le copier et de l'enregistrer ailleurs.
  6. N'utilisez pas le vrai mot de passe de votre compte Google dans les paramètres PHPMailer, utilisez plutôt le mot de passe que vous venez de générer.
    P粉399090746

    Pour référence, veuillez visiter GitHub :

    [https://github.com/shahhussain305/esdn_classes][1] /* To use this new method of PHPMailer follow the following steps on ubuntu: Step 1: Install Composer $ sudo apt update sudo apt install php-cli unzip $ cd ~ $ curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php $ HASH=`curl -sS https://composer.github.io/installer.sig` $ php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" Output: Installer verified **Note**: If the output says Installer corrupt, you’ll need to repeat the download and verification process until you have a verified installer. * The following command will download and install Composer as a system-wide command named composer, under /usr/local/bin: $ sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer Output All settings correct for using Composer Downloading... Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer To test your installation, run: $ composer

    Étape 2 : Accédez au répertoire racine du site Web et exécutez la commande suivante

    $ composer require phpmailer/phpmailer */ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; class Communicator{ /* to send emails from your registered domain / hosting email server private $host = "smtp.hostinger.com"; private $userName="no-reply@example.com"; private $robots = array( 'no-reply@example.com', 'no-reply1@example.com', 'no-reply2@example.com', 'no-reply3@example.com', 'no-reply4@example.com'); private $password="jashdf &_isdf807%^$^sdf;_sdf*)465"; public $from_email='no-reply@example.com'; */ //----------Send Email From GMAIL SMTP Server -----------------// /* To activate sending emails from gmail, please do the following: 1- login to your gmail account and go to the manage accounts (Top right under the user name logo) 2- click on the security (left side menus) 3- Activate the two step varification 4- under the two step varification, click on the app password, click on the first dropdwon and select Custom name and Type any name like PHPMailer etc */ private $host = "smtp.gmail.com"; private $userName="abcd1@gmail.com"; private $password="ywhstefdirkdfhen"; private $robots = array( array('abcd1@gmail.com','ywhstefdirkdfhen'), array('abcd2@gmail.com','oejrgdbeygswjhdo'), array('abcd3@gmail.com','poswkfhrusnfhwlv'), array('abcd4@gmail.com','tgfdeswavfgdertk'), array('abcd5@gmail.com','polkhytrdwesaqzx'), array('abcd6@gmail.com','okljuhbgtrdfcxse') ); public $from_email='abcd1@gmail.com'; //------------------------------------------------------// public $replyTo="abcd1@gmail.com"; var $tempVar; public $from_name = 'NAME OF YOUR ORGANIZATION'; public $charSet = "CharSet = 'UTF-8'"; public $charSetOpt = 0; //function to send email simple and with attachements public function sendEmail($to,$from,$sender_name="",$subject,$body,$attachement_path="",$cc="",$bcc=""){ require '../../../../vendor/autoload.php'; $mail = new PHPMailer; $mail->IsSMTP(); // set mailer to use SMTP i.e. smtp1.example.com;smtp2.example.com $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->SMTPDebug = SMTP::DEBUG_SERVER; $mail->Host = $this->host; // specify main and backup server $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = $this->userName; // SMTP username i.e email id of an email address $mail->Password = $this->password; // SMTP password for the specified email address $mail->Port = 587; $mail->SMTPSecure = 'tls'; if($this->charSetOpt != 0){ $mail->CharSet = $this->charSet; } $mail->From = $from; $mail->FromName = $sender_name; $mail->addAddress($to); //mail,name if(isset($cc) && !empty($cc)){ $mail->addBCC($bcc); } if(isset($cc) && !empty($cc)){ $mail->addCC($cc); } $mail->addReplyTo($this->replyTo);//to, name $mail->WordWrap = 50; if(isset($attachement_path) && !empty($attachement_path)){ // set word wrap to 50 characters $mail->AddAttachment($attachement_path); // add attachments } $mail->isHTML(true); // set email format to HTML $mail->Subject = $subject; $mail->Body = $body; //$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if(!$mail->send()){ $this->tempVar = $mail->ErrorInfo; return false; } else{ return true; } } //for multiple recipients public function sendEmails($to=array(),$from,$sender_name="",$subject,$body,$attachement_path="",$cc="",$bcc=""){ require '../../../../vendor/autoload.php'; $mail = new PHPMailer; $mail->IsSMTP(); // set mailer to use SMTP i.e. smtp1.example.com;smtp2.example.com $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; $mail->SMTPDebug = SMTP::DEBUG_SERVER; $mail->Host = $this->host; // specify main and backup server $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = $this->userName; // SMTP username i.e email id of an email address $mail->Password = $this->password; // SMTP password for the specified email address $mail->Port = 587; $mail->SMTPSecure = 'tls'; if($this->charSetOpt != 0){ $mail->CharSet = $this->charSet; } $mail->From = $from; $mail->FromName = $sender_name; //$mail->addAddress($to[0]); //mail,name foreach($to as $value){ $mail->addAddress($value); } if(isset($bcc) && !empty($bcc)){ $mail->addBCC($bcc); } if(isset($cc) && !empty($cc)){ $mail->addCC($cc); } //$mail->AddAddress("ellen@example.com"); // name is optional $mail->addReplyTo($this->replyTo);//to, name $mail->WordWrap = 50; if(isset($attachement_path) && !empty($attachement_path)){ // set word wrap to 50 characters $mail->AddAttachment($attachement_path); // add attachments //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name } $mail->isHTML(true); // set email format to HTML $mail->Subject = $subject; $mail->Body = $body; //$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if(!$mail->send()){ $this->tempVar = $mail->ErrorInfo; return false; } else{ return true; } } //for multiple/single recipient(s) and from random robots public function sendEmailRnd($to=array(),$sender_name="",$subject,$body,$attachement_path="",$cc="",$bcc=""){ $this->get_email_user($this->robots); require '../../../../vendor/autoload.php'; $mail = new PHPMailer; $mail->IsSMTP(); // set mailer to use SMTP i.e. smtp1.example.com;smtp2.example.com $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //$mail->SMTPDebug = SMTP::DEBUG_SERVER; $mail->Host = $this->host; // specify main and backup server $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = $this->userName; // SMTP username i.e email id of an email address $mail->Password = $this->password; // SMTP password for the specified email address $mail->Port = 587; $mail->SMTPSecure = 'tls'; if($this->charSetOpt != 0){ $mail->CharSet = $this->charSet; } $mail->From = $this->userName; $mail->FromName = $sender_name; //$mail->addAddress($to[0]); //mail,name foreach($to as $value){ $mail->addAddress($value); } if(isset($bcc) && !empty($bcc)){ $mail->addBCC($bcc); } if(isset($cc) && !empty($cc)){ $mail->addCC($cc); } //$mail->AddAddress("ellen@example.com"); // name is optional $mail->addReplyTo($this->replyTo);//to, name $mail->WordWrap = 50; if(isset($attachement_path) && !empty($attachement_path)){ // set word wrap to 50 characters $mail->AddAttachment($attachement_path); // add attachments //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name } $mail->isHTML(true); // set email format to HTML $mail->Subject = $subject; $mail->Body = $body; //$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if(!$mail->send()){ $this->tempVar = $mail->ErrorInfo; return false; } else{ return true; $this->tempVar = $from; } $mail->smtpClose(); } private function get_email_user($robots_array=array()){ try{ if(is_array($robots_array) && count($robots_array) > 0){ //get random user id with password from the $robots array $sender_robot_ary = $this->robots[array_rand($this->robots,1)]; $this->userName = $sender_robot_ary[0]; $this->password = $sender_robot_ary[1]; } }catch(Exception $exc){ $this->tempVar = $exc; } } }
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!