Wysyłanie wiadomości e-mail przez PHPMailer jest często skryptowane przez PHP, jeśli zamierzasz wysyłaćpowiadomienia e-mail o nowych komentarzach na swoim blogu WordPress lub gdy serwer jest przeciążony wysokimi skokami procesora (poprzez czas pracy pokazujący średnie obciążenia w ciągu ostatnich 1, 5 i 15 minut).
Jeśli korzystasz z Gmaila, najprawdopodobniej Google Gmail zgłosi się z błędem: Nie można uwierzytelnić, nawet jeśli wpisałeś poprawne hasło do swojego konta Gmail.
Umieszczenie hasła do konta bezpośrednio w skrypcie nie jest dobrym pomysłem, a prawidłowym sposobem rozwiązania tego problemu i uniknięcia wycieku hasła do głównego konta jest użycie hasła do aplikacji. Alternatywnie możesz dostosować ustawienia zabezpieczeń dla mniej zabezpieczonych aplikacji – co może nie działać, ponieważ jest to tylko skrypt PHP.
Hasło do aplikacji można ustawić osobno dla każdej indywidualnej aplikacji, a także można je ponownie wygenerować, jeśli zostanie naruszone.
Musisz odwiedzić Panel bezpieczeństwa Google: https://myaccount.google.com/security
bezpieczeństwo-hasła-aplikacji-google
Następnie dodaj hasło do aplikacji (wybierz GMail i inne – nadaj aplikacji nazwę) – które może być używane w PHPMailerze – w przypadku wycieku hasła zawsze możesz je usunąć i ponownie wygenerować nowe.
hasła-aplikacji google
Następnie należy użyć następującego przykładowego kodu PHPMailera do testowania poczty 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);
}
Pamiętaj, że musisz również zaktualizować ustawienia poczty e-mail we wtyczce WordPress – SMTP. I upewnij się, że masz następujące dane uwierzytelniające do Gmaila zaktualizowane w wp-settings.php
define( 'WPMS_ON', true );
define( 'WPMS_SMTP_PASS', 'You GMAIL App Password' );

