有人有使用sendmail和subprocess发送邮件的Python代码示例吗?
我对subprocess.Popen
是怎么回事有点困惑。如果有人能提供一个使用subprocess模块和sendmail发送邮件的示例代码,那就太好了。
2 个回答
0
我在使用 subprocess
时遇到的第一个小问题就是,它默认情况下并不能处理完整的命令行字符串。
如果你想执行类似于下面的命令:
os.system("echo hello world")
你需要使用 shell=True
这个选项:
subprocess.Popen("echo hello world", shell=True)
2
这段话虽然没有直接回答问题,但根据你对“DNS”评论的回复,可能会帮到你。
在发送SMTP邮件时,你需要明白,你在smtplib.sendmail()这个函数里传入的“发件人”和“收件人”地址,其实和你在收到邮件时看到的“发件人”和“收件人”头部信息是不一样的。这些地址会变成发送给接收SMTP邮件程序的参数,分别对应“MAIL FROM”和“RCPT TO”命令。这通常被称为邮件的“信封”,这些值通常会出现在“Received:”头部信息中。
如果你想指定自己想要的头部信息,就必须在邮件正文之前自己提供这些信息。smtplib的例子展示了怎么做,里面用到了一个叫“msg”的元组,它会被加在邮件正文之前。