Как установить количество попыток повторной отправки письма с помощью PHPMailer?

Пользователь

от rodger.botsford , в категории: PHP , 10 месяцев назад

Как установить количество попыток повторной отправки письма с помощью PHPMailer?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от lilla.herman , 10 месяцев назад

@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".