Python 的 smtplib 在正常运行时工作,但通过 cron 执行时不行
我有一段Python代码,像下面这样。手动运行的时候一切正常。但是当通过定时任务(cronjob)运行时,邮件却没有发送。以下是代码:
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = to
msg['Subject'] = subject
msg.attach(MIMEText(message))
mailServer = smtplib.SMTP("smtp.gmail.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(login, password)
print mailServer.sendmail(login, to, msg.as_string())
2 个回答
0
在我的情况中,是 os.getenv
在邮件内容中没有正常工作。
可能这个错误是因为定时任务脚本默认没有任何的环境变量。
0
也许你在Unix环境中手动执行和通过定时任务(cron)执行时,环境变量是不同的。你可以在定时任务中运行“env >file”这个命令,然后把结果和你在交互式环境下运行时的环境变量进行对比。