通过调用 bash 脚本发送电子邮件时出错



我在Raspbian OS上的sendmail.sh脚本能够成功发送电子邮件。但是当从python脚本调用它时,我会收到一条"mail: can not send message: process exited with non zero status"错误消息。我已经通过手动运行sendmail.sh验证了 ssmtp 是否正确配置。

sendmail.sh

#!/bin/bash
echo "test" | mail -s "test msg" myemailaddress

sendmail.sh 的权限为 777。sendmail.sh 和 sendmail.py 位于同一目录中。

sendmail.py

import os
import subprocess
subprocess.call(['./sendmail.sh'])

我用来运行python的命令 - sudo python sendmail.py .

我不明白为什么会发生错误。显然,python 正在调用sendmail.sh并且脚本对其设置了正确的权限。如果手动运行 sendmail.sh,则邮件发送正确。

根本原因是ssmtpmail给出的错误消息,这是最无益的。

快速谷歌搜索一下,它会显示 http://www.raspberrypi.org/forums/viewtopic.php?t=46218&p=386393 内容如下:

尝试使用其他 -d 参数运行该命令,以获取更多调试信息,以帮助确定问题的原因:

echo "Test" | mail -d -s "Test" myemail@mydomain.co.uk

<...>

我检查了我的错误日志,并注意到这一点:

<日期时间> Raspberrypi sSMTP[3477]:<一堆消息,包括显示根本原因的错误>

您可以尝试以下命令:

os.system('./sendmail.sh')

相关内容

  • 没有找到相关文章