Примерно 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