我使用以下bash代码发送电子邮件:
echo abc | mail -s Subject abc@def.com
工作正常。现在我想在python中使用相同的命令,所以我写下以下内容:
call(["echo abc" "|" "mail", "-s Subject", "abc@def.com"], shell=True)
当我使用
调用python脚本时,此python代码不会向我发送电子邮件$python email.py
我从shell获得以下信息
No mail for rex
这是怎么发生的?
答案 0 :(得分:2)
如果您使用的是Python,则不需要echo
和命令之间的管道
您可以启动流程并使用communicate
方法:
import subprocess
def send_message(recipient, subject, body):
process = subprocess.Popen(['mail', '-s', subject, recipient],
stdin=subprocess.PIPE)
process.communicate(body)
答案 1 :(得分:1)