Есть проблемка. Отправляю почту при помощи SMTPSEND3 через SMTP-сервер хостера. Этот сервер допускает только один тип авторизации — "POP3 before SMTP". POP3RECV забирает почту раз в 5 мин, SMTPSEND3 передаёт по факту появления исходящей почты. Все бы хорошо, для авторизации 5 минут хватает, но с нашей стороны локальный сервер с Eserv/2 имеет 2 разных внешних интерфейса к двум разным провайдерам для надежности. Случается, что из-за сбоев происходит переключение интерфейсов как раз между сеансами получения и отправки почты. Естественно SMTP хостера даёт злобный отлуп 550, что рядовых пользователей очень пугает.
Пробовал в задание планировщика на отправку почты подсунуть выполнение скрипта, в котором последовательно запускал Etelnet и SMTPSEND3. При этом POP3 как раз и должен был имитироваться запуском Etelnet на 110 порт SMTP с чтением входного потока из файла, где прописывал
USER XXX
PASS YYY
STAT
QUIT
Получил две проблемы:
- Нужна задержка небольшая между отправляемыми строками Etelnet, иначе SMTP провайдера воспринимает STAT, как ошибочную команду. Как сделать — неочевидно.
- SMTPSEND3, судя по всему, запускается не дожидаясь завершения Etelnet.
P.S. Увеличить частоту запусков POP3RECV прошу не предлагать, ибо всё-равно будет запускаться асинхронно от SMTPSEND3
Дело в том, что smtpsend, в отличие от smtpsend3, умеет требуемый "POP before SMTP".
Буду пробовать. Спасибо!
Вот рабочая строка SMTPSEND: agents\smtpsend -z -r 2 -s <SERVER> -o temp\%TempFile%.smtp
А вот уже не рабочая agents\smtpsend -z -r 2 -s <SERVER> -o temp\%TempFile%.smtp -pop <SERVER> <USERNAME> <PASSWORD>
Несмотря на рабочий pop3recv: agents\POP3RECV.exe -z -d -o temp\%TempFile%.eml -s <SERVER> -u <USERNAME> -w <PASSWORD>&agents\Erobot.exe -c agents\pop3toss.cfg -o temp\%TempFile%.toss -i temp\%PrevTempFile%.eml
При попытке POP3 авторизации SMTPSEND сразу лезет на <SERVER>:3128. Зачем? Естественно ничего не получается, %Tempfile% не создаётся