PHPMailer через Office 365 | 1 из 2000 электронных писем не отправляется без ошибок или исключений.Php

Кемеровские программисты php общаются здесь
Anonymous
PHPMailer через Office 365 | 1 из 2000 электронных писем не отправляется без ошибок или исключений.

Сообщение Anonymous »

Мы используем PHPMail 6.9.1 https://github.com/PHPMailer/PHPMailer на платформе Windows Server 2022.
Примерно 1 из 2000 электронных писем никогда не отправляется и, следовательно, никогда не отправляется. появляется в поле «Отправленные» нашей учетной записи электронной почты Office 365, когда мы отправляем товар через PHP.
Наша система управления заказами генерирует и отправляет электронное письмо поставщику каждый раз, когда заказ создается/обновляется.< /p>
Код PHP для отправки через Office 365 выглядит следующим образом:

Код: Выделить всё

//setup the mailer

require("functions/PHPMailer/src/Exception.php");
require("functions/PHPMailer/src/PHPMailer.php");
require("functions/PHPMailer/src/SMTP.php");

$mail = new \PHPMailer\PHPMailer\PHPMailer();

// Build the mail body text

$text = "Here is the text for the mail body";

//send the mail

try {
$mail->isSMTP();
$mail->Host = 'smtp.office365.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->IsHTML(true);
$mail->Username = 'myemail@mydomain.co.uk';
$mail->Password = 'csBt9v5tB';
$mail->CharSet="UTF-8";
$mail->SetFrom('myemail@mydomain.co.uk', 'My Friendly Name');
$mail->addAddress('recipientemailrecipientdomain');
$mail->Subject = $subject;
$mail->Body = $text;
// Add any images
$mail->addAttachment($image);
// Send email
$mail->send();
}
catch (phpmailerException $e) {
$_SESSION['error-url'] = basename(__FILE__);
$_SESSION['error-line'] = __LINE__;
$_SESSION['error-sqlmsg'] = $e->errorMessage();
$_SESSION['error-sqlstmt'] = "";
$_SESSION['error-sqlprms'] = "";
header("Location: "."error.php");
exit();
}
catch (Exception $e) {
$_SESSION['error-url'] = basename(__FILE__);
$_SESSION['error-line'] = __LINE__;
$_SESSION['error-sqlmsg'] = $e->getMessage();
$_SESSION['error-sqlstmt'] = "";
$_SESSION['error-sqlprms'] = "";
header("Location: "."error.php");
exit();
}
Я проверил одну из деталей ошибочного электронного письма и обновил запись в нашей системе (которая отправляет автоматическое электронное письмо), и все работает нормально; кажется, что проблем со структурой электронного письма нет.
Это решение работает безупречно уже много лет, а такое периодическое поведение началось только в последние четыре месяца. p>
У нас нет повторяющихся критериев, позволяющих обнаружить проблему.
Я, как PHP-разработчик, не понимаю, что делать, и клиент твердо заявляет об этом мне, чтобы решить.
Существуют ли какие-либо дополнительные методы потенциального обнаружения проблемы на нашем сервере?

Подробнее здесь: https://stackoverflow.com/questions/790 ... error-or-e

Вернуться в «Php»