L’invio di una posta tramite PHPMailer è spesso eseguito tramite script tramite PHP se intendi inviare notifiche e-mail quando vengono ricevuti nuovi commenti sul tuo blog wordpress o quando il server è sovraccarico di picchi elevati della CPU (tramite il tempo di attività che mostra le medie di carico negli ultimi 1, 5 e 15 minuti).
Se stai utilizzando Gmail, molto probabilmente è che Google Gmail riporterà un errore: Impossibile autenticare anche se hai digitato la password corretta per il tuo account Gmail.
Inserire la password dell’account direttamente da qualche parte nello script non è una buona idea e il modo corretto per risolvere questo problema ed evitare di perdere la password dell’account principale è utilizzare la password dell’app. In alternativa, puoi personalizzare le tue impostazioni di sicurezza per le applicazioni meno sicure, cosa che potrebbe non funzionare poiché qui è solo uno script PHP.
La password dell’app può essere impostata separatamente per ogni singola applicazione e puoi anche rigenerarne una se una è compromessa.
Dovresti visitare il dashboard di sicurezza di Google: https://myaccount.google.com/security
google-app-passwords-sicurezza
Quindi, aggiungi una password per l’app (seleziona Gmail e altri – dai un nome all’app) – che può essere utilizzata nel PHPMailer – nel caso in cui questa password venga trapelata, puoi sempre eliminarla e rigenerarne una nuova.
password di google-app
Quindi, il seguente codice di esempio PHPMailer dovrebbe essere utilizzato per eseguire il test dell’e-mail.
#!/usr/bin/php
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';
$host = "<a class="vglnk" target="_blank" href="http://smtp.gmail.com" rel="nofollow"><span>smtp</span><span>.</span><span>gmail</span><span>.</span><span>com</span></a>";
$port = 587;
$secure = "tls";
// or the following configurations through SSL should work as well.
// $port = 465;
// $secure = "ssl";
$username = "Your GMAIL email";
$password = "Your GMAIL App Password";
try {
$mailer = new PHPMailer(true);
$mailer->IsHTML(true);
$mailer->IsSMTP();
$mailer->From = $username;
$mailer->FromName = $username;
$mailer->ClearAllRecipients();
$mailer->AddAddress("Recipent Email Address", "Recipent");
$mailer->Subject = "Subject ";
$mailer->Body = "Hello, time is: ". date("Y-m-d h:i:s");
$mailer->SMTPAuth = true; // enable SMTP authentication
$mailer->SMTPSecure = $secure; // sets the prefix to the servier
$mailer->Host = $host; // sets GMAIL as the SMTP server
$mailer->Port = $port; // set the SMTP port for the GMAIL server
$mailer->Username = $username; // GMAIL username
$mailer->Password = $password; // GMAIL password
$result = $mailer->Send();
echo "Mail sentn";
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ';
var_dump($e);
}
Ricorda, dovresti anche aggiornare le impostazioni e-mail in WordPress Plugin – SMTP. E assicurati di avere le seguenti credenziali per Gmail aggiornate in wp-settings.php
define( 'WPMS_ON', true );
define( 'WPMS_SMTP_PASS', 'You GMAIL App Password' );

