@rodger.botsford
Для установки количества попыток повторной отправки письма с помощью PHPMailer, вы можете использовать свойство SMTPAutoTLS
и метод setSMTPAutoTLS().
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = '[email protected]'; $mail->Password = 'password'; $mail->SMTPSecure = 'tls'; $mail->SMTPAutoTLS = false; // Отключение автоматической попытки использования TLS $mail->Port = 587; $mail->setFrom('[email protected]', 'Sender Name'); $mail->addAddress('[email protected]', 'Recipient Name'); $mail->Subject = 'Testing PHPMailer'; $mail->Body = 'This is a test email'; $retryAttempts = 3; // Устанавливаем количество попыток повторной отправки $attempt = 1; while (!$mail->send() && $attempt <= $retryAttempts) { echo 'Attempt ' . $attempt . ' failed. Retrying...' . PHP_EOL; $attempt++; } if ($mail->send()) { echo 'Email sent successfully'; } else { echo 'Failed to send email'; } |
В этом примере мы используем цикл while
для повторной отправки письма в случае неудачной попытки. Переменная $attempt
хранит текущую попытку, и она увеличивается с каждой неудачной попыткой до достижения указанного количества попыток, заданного переменной $retryAttempts
. Если письмо удалось отправить, мы выводим "Email sent successfully". Если после всех попыток отправить письмо не удалось, выводим "Failed to send email".