Я надеюсь, что кто-нибудь может помочь мне здесь. Я искал везде и спросил друга, но ничего не могу найти. У меня есть скрипт на python, который читает пару файлов, исправляет некоторые номера штрих-кодов, а затем отправляет электронные письма, используя smtplib, 2 файла в виде вложений. Сценарий работает хорошо из командной строки, оба вложения отправляются с электронной почтой. Но из Cron электронное письмо отправлено, а вложения нет. Кто-нибудь знает, есть ли конфигурация, которую нужно изменить, или в скрипте python должно быть что-то еще, чтобы Cron мог отправлять вложения?
Вот моя строка в crontab, ничего особенного
15 01 * * * /home/user/folder/./script.py
Я использую cron для отправки других писем из скриптов python, и у меня не было никаких проблем. Разница лишь в том, что ни у кого другого нет привязанностей.
Если бы кто-то слышал об этом и мог помочь, это было бы здорово! Если вам нужна часть или весь код Python, пожалуйста, дайте мне знать.
Благодаря
Если у кого-то еще есть эта проблема, вот как я ее решил, возможно, есть много других способов, и если у кого-то есть более лучшая, пожалуйста, дайте мне знать.
Cron не запускал скрипт в правильной среде, поэтому он мог запустить скрипт, но он искал в неправильном каталоге вложения. Он не мог их найти. Я написал сценарий оболочки следующим образом:
#!/bin/bash
cd /path/to/directory
python file.py
. Это позволяет среде измениться на каталог, в котором я хочу работать. Теперь, когда вложения найдены, так как скрипт и вложения находятся в тот же каталог.
Я изменил задание Cron для запуска сценария оболочки:
30 01 * * * /path/to/script/./script.sh
Я не уверен, что это просто обходное решение или реальное решение, но оно работает и это хорошо для меня!