Как повторить попытку отправки электронной почты с помощью Perl - PullRequest
0 голосов
/ 10 октября 2011

Я работаю над отправкой электронной почты с использованием языка Perl и использую пакет Win32 :: OLE с использованием объекта CDO.

my $ cdomsg = Win32 :: OLE-> new ('CDO.Message');... $ cdomsg -> Send ();

Моя проблема в том, что иногда могут быть какие-то сетевые ошибки или что-то подобное, я хочу повторить попытку отправки почты 10 раз, если она не была успешно отправлена.Есть ли способ решить проблему?

1 Ответ

2 голосов
/ 10 октября 2011

Я не знаком с этим пакетом, но, вероятно, вы можете проверить возвращаемое состояние команды и цикла Send ().

Но это не элегантное решение. Эта проблема решена много раз. Лучший ответ - отправить электронное письмо через SMTP через реальную почтовую систему. Я использую Postfix на своих Unix-машинах, я не знаю, что нужно для пользователей Windows. Все полнофункциональные пакеты почтового сервера будут иметь встроенное решение для повторных попыток, которое будет пытаться повторно отправлять электронные письма в течение настраиваемого периода времени, используя интеллектуальный алгоритм для возврата на частоту повторных попыток, с интервалом между повторными попытками в течение нескольких дней.

...