系统相关
首页 > 系统相关> > shell – 为什么mail-utils / cron会发送这么多电子邮件?

shell – 为什么mail-utils / cron会发送这么多电子邮件?

作者:互联网

我试图解决为什么我的Raspberry Pi没有发送带有ssmtp / mail-utils的电子邮件,所以我打开了我用于Pi的gmail帐户.令我惊讶的是,有15k条未读电子邮件曾试图向电子邮件地址“pi @ pi_name”发送电子邮件,这显然被拒绝了(试图发送到123456789@myprovider.com).这些电子邮件/拒绝大约每隔几分钟发生一次.拒绝是一回事(我必须让配置错误),但它让我感到困惑的是这里发生了什么.在我的crontab -u pi -l中,我有以下内容(root的crontab为空):

30 8 * * * python /.../text.py
* * * * * python /.../record.py

text.py应该每天8:30向我发送提醒,而record.py应该每分钟运行一次以记录一些音频.
在正在发送的电子邮件中,电子邮件的正文是record.py的输出(录制的音频详细信息).我的直觉是,电子邮件与每分钟运行的cron作业有关(即使电子邮件大约每3分钟一次),但在record.py中没有提到发送电子邮件;它只是写入MySQL数据库. text.py使用命令echo“body”|发送电子邮件mail -s“subject”x@example.com

我很困惑这里发生了什么.我不知道从哪里发送电子邮件,而且,今年1月份的所有内容都按计划运行了(当我出国几个月时,我将我的Pi存入存储空间),我没有做任何更改它.

同样奇怪的也许相关的是,当我输入命令python text.py时,它随机工作(可能是5%的几率?)并给我发短信,否则发送邮件错误:无法打开smtp.gmail.com:587.我不确定它在什么情况下会成功.

解决方法:

如果cron作业将任何内容打印到标准输出或标准错误,或者命令返回失败状态(即任何非零退出代码),则cron会向用户发送包含输出和状态代码的电子邮件.

电子邮件将通过本地电子邮件工具发送给用户,除非您通过将crontab中的MAIL变量设置为本地地址来覆盖该电子邮件.如果您的本地电子邮件是通过〜/ .forward或/ etc / aliases或类似邮件转发的,那么来自cron的电子邮件显然会像其他电子邮件一样转发.如果用户的电子邮件无法送达但管理员的电子邮件无效,则管理员(技术上:postmaster)将收到退回邮件.

阅读这些电子邮件的内容,找出问题所在.如果每分钟的工作有时会失败,那可能就是你收到这些电子邮件的内容.

如果您的ISP有时会拒绝您的电子邮件,这可能是由于您发送了大量电子邮件并且作为潜在的垃圾邮件发送者而受到速率限制.

标签:python,shell,raspberry-pi,cron,mail-command
来源: https://codeday.me/bug/20190816/1663893.html