我正在编写一个 python 脚本,它会在引发异常时发送电子邮件。我收到了电子邮件,但是每次正文都是空的 - 我收到了 Null 邮件正文; hope that's ok
调用子进程时的消息。
这是我的代码:
subject = "This is the subject"
f = open('body.txt', "w+")
body = "Email body goes here."
f.write(body)
subprocess.call(['mail', '-s', subject, 'addr@example.com'],stdin=f)
f.close()
为什么我每次都得到一个空的 body ?我不认为我理解 subprocess
中的标准输入是如何工作的。
最佳答案
在调用 subprocess.call()
之前,您需要关闭 f
。否则,f
不会在 mail
读取它时被刷新,并且无法保证任何内容实际上已经写入文件。
关于python - 每次在 python 中使用 subprocess.call 发送 linux 电子邮件时都会得到一个空体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197086/