Запуск экспорта python, который включает триггер отправки электронной почты через планировщик задач, не работает?

#python #email #smtp #smtplib #taskscheduler

Вопрос:

У меня возникли проблемы с тем, чтобы планировщик задач отправлял электронное письмо через python. Конкретный код python, который я использую, создает ежемесячный экспорт, собирает данные из базы данных SQL, а затем отправляет электронное письмо с уведомлением команды, в которой находится экспорт. Для электронной почты я использую smtplib.

Вот в чем проблема. Я могу запустить экспорт из pycharm, и экспорт и отправка электронной почты работают нормально. Я могу запустить экспорт из планировщика задач, и ТОЛЬКО экспорт выполняется. Другими словами, только когда я запускаю файл .bat кода из планировщика задач, электронное письмо не отправляется. Кто-нибудь случайно не знает решения? Я перепробовал так много вещей из поисков, и ничего не работает. 🙁

Ответ №1:

Ответ действительно зависит от того, как вы упаковали свой код и как вы решите его выполнить.

Мне кажется, что вы выполняете его как сценарий, на который указывает ваш планировщик задач, если этот сценарий вызывает ваш системный интерпретатор, моим первым предложением было бы убедиться, что у вас установлены все зависимости для версии python, которую вызывает ваш сценарий. Поэтому, если вы вызываете python 3.9.1, убедитесь, что smtplib установлен в python вашей системы для версии 3.9.1.

Чтобы понять, почему он работает в pycharm, код в pycharm выполняется в изолированной среде, поэтому пакеты, установленные для вашего проекта, будут работать только в этом конкретном проекте. Ни за его пределами, ни в других системах.

Комментарии:

1. Спасибо вам за ваш ответ! STMP встроен в python, так что это не то, что я могу установить (насколько я понимаю)? Я проверил, были ли у меня какие-либо нарушенные зависимости, и я этого не делаю. Я также перепробовал все возможные комбинации в таблице «Действия» моей запланированной задачи, но безуспешно. Код запускает нужный мне экспорт и помещает его в нужную папку, но по электронной почте не отправляется сообщение о том, что оно готово.