有人有使用sendmail和subprocess发送邮件的Python代码示例吗?

0 投票
2 回答
814 浏览
提问于 2025-04-15 17:15

我对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”的元组,它会被加在邮件正文之前。

撰写回答