我希望有人能帮我。我到处找过,也问过朋友,但什么也没找到。我有一个 python 脚本,可以读取几个文件,修复一些条形码数字,然后使用 smtplib 将这两个文件作为附件发送电子邮件。该脚本在命令行中运行良好,两个附件都随电子邮件一起发送。但是,从 Cron 发送电子邮件,但附件没有。有人知道是否有需要更改的配置,或者 python 脚本中是否应该有其他内容以允许 Cron 发送附件?
这是我在 crontab 中的一行,没什么特别的
15 01 * * * /home/user/folder/./script.py
我正在使用 cron 从 python 脚本发送其他电子邮件,没有遇到任何问题。唯一的区别是其他邮件都没有附件。
如果有人听说过这个并且可以提供帮助,那就太好了!如果您需要部分或全部 Python 代码,请告诉我。
谢谢
答案1
如果其他人遇到这个问题,下面是我解决问题的方法,可能还有很多其他方法,如果有人有更好的方法,请告诉我。
Cron 没有在正确的环境中运行脚本,因此它可以运行脚本,但它在错误的目录中查找附件。它找不到它们。我所做的是编写一个如下的 shell 脚本:
#!/bin/bash
cd /path/to/directory
python file.py
这样就可以将环境改变为我想要工作的目录。现在可以找到附件,因为脚本和附件位于同一个目录中。
我修改了 Cron 作业来运行 shell 脚本:
30 01 * * * /path/to/script/./script.sh
我不确定这是否只是一种解决方法或一个真正的解决方案,但它确实有效,而且对我来说很好!