Я установил PHPMailer 6 и использую его в MVC приложении, как показано ниже, мое электронное письмо, очевидно, отправлено, но так и не получено:
<code>// Controller:
$this->sendmailer = new PHPMailer(true);
//$this->sendmailer->isSMTP();
$this->sendmailer->SMTPDebug = 2;
$this->sendmailer->SMTPAuth = true;
$this->sendmailer->SMTPSecure = 'tls';
$this->sendmailer->Host = 'smtp.gmail.com';
$this->sendmailer->Port = 587;
$this->sendmailer->Username = 'xxxxxx@gmail.com';
$this->sendmailer->Password = 'xxxxxxx';
$this->sendmailer->setFrom('xxxxxxx@gmail.com', 'Test PHPMailer / GMail');
// In the inherited Controller...:
$mail=$this->sendmailer;
$subject="Mail Subject....";
$content="HTML content";
$mail->addAddress('jmbrosselin@jmbdev.com', 'JM Brosselin');
$mail->Subject = $subject;
$mail->isHTML();
$mail->msgHTML($content);
echo '<pre>';
echo $message;
echo '<br/><hr><br/>';
print_r($mail);
echo '
'; д ie ();
Примечание 1. Я закомментировал метод isSMTP (), который прервал рассылку, независимо от того, какую конфигурацию SMTP я использую (tls / 587 или ssl / 465 ...); В любом случае, вывод электронной почты кажется правильным; Примечание 2: я проверил этот конфиг в более простом стиле, отличном от MVC, и он отлично работает, например, он отправлен ... И получен!
Упс .. забыли добавить метод send в транскрипт кода .. Очевидно, он был у меня в оригинальном скрипте:
if (!$mail->send()) {
$message='<br/>Mailer Error: '. $mail->ErrorInfo;
} else {
$message='<br/>Message sent!';
}
Привет! и благодаря @Dhruvadeep. Я использую французскую консоль Google / Admin, поэтому меню несколько иные, но я применил «менее безопасный контроль приложений»; то, что я НЕ делаю, использует Инструкция "require 'PHPMailerAutoload.php';
"; вместо этого я использую Composer и следующее:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
в моем «контроллере» ... Я, кажется, читал, что "require 'PHPMailerAutoload.php';
" устарел, я использую v6.1.4 PHPMailer ... это правильно?
На самом деле, как сконфигурировано, запросы Gmail работают «случайным образом» (…!) и тратят немало времени на то, чтобы либо отправить сообщение в почтовый ящик получателя, либо ..not ! Я читал, что это может быть связано с тем, что GMail считает, что я рассылаю спам. Но не будет ли он фильтроваться / из почтового ящика получателя, а не из стороны, выдавшей его (например, GMAIL ...)? Ниже моей текущей настройки:
$this->sendmailer = new PHPMailer(true);
//$this->sendmailer->isSMTP();
$this->sendmailer->SMTPDebug = 2;
$this->sendmailer->Host = 'smtp.gmail.com';
//$this->sendmailer->Host =gethostbyname("smtp.gmail.com");
$this->sendmailer->Port = 587;
$this->sendmailer->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$this->sendmailer->SMTPAuth = true;
$this->sendmailer->Username = 'my_gmail_email_email@gmail.com';
$this->sendmailer->Password = 'my_gmail_email_pwd';
$this->sendmailer->setFrom('my_gmail_email_email', 'Test');