Я кодировал функцию, которая отправляет электронные письма ежедневно. Работал последние 4 месяца без ошибок. Сегодня внезапно я получаю сообщение об ошибке:
2019-10-28 13:00:01 Не удалось создать экземпляр почтовой функции.
PHPMailer \ PHPMailer \ Exception: Не удалось создать экземпляр почтыfunction.
в G: \ intranets \ dynamicbi \ vendor \ phpmailer \ phpmailer \ src \ PHPMailer.php: 1720
1716 |if (isset ($ old_from)) {
1717 |ini_set ('sendmail_from', $ old_from);
1718 |}
1719 |if (! $ result) {
1720 |генерировать новое исключение ($ this-> lang ('instantiate'), self :: STOP_CRITICAL);
1721 |}
1722 |
1723 |верните истину;
1724 |}
Код, который отправляет электронные письма, следующий:
$mail = new PHPMailer\PHPMailer(true);
try {
// $mail->IsSMTP(); <-- yes, this is commented, I've never used this line and code worked.
$mail->CharSet = "utf-8";
$mail->Host = 'smtp.office365.com';
$mail->SMTPAuth = true;
$mail->Username = env('MAIL_USERNAME');
$mail->Password = env('MAIL_PASSWORD');
$mail->Port = 587;
$mail->SMTPDebug = 2;
$mail->SMTPSecure = 'tls';
$mail->IsHTML(true);
$mail->Priority = 1;
$mail->SetFrom("noreply@foo.bar",'Bar Baz');
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAttachment('/output/temp/file.csv', 'filename.csv' );
$emails = explode(',', $emails);
foreach ($emails as $email) {
$mail->AddAddress($email);
}
$mail->Send();
Log::info('Email sent to ', array('email' => $emails));
} catch (Exception $e) {
Log::error($e);
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}
Я изменил код, и он не изменился, я изменил переменные среды MAIL_USERNAME иMAIL_PASSWORD и я не плавники ничего другого, чем раньше. Все кажется правильным, и с сегодняшнего дня все работало нормально.
Я что-то упустил?