Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人有使用sendmail和子流程发送邮件的示例python代码吗?_Python_Subprocess_Sendmail - Fatal编程技术网

有人有使用sendmail和子流程发送邮件的示例python代码吗?

有人有使用sendmail和子流程发送邮件的示例python代码吗?,python,subprocess,sendmail,Python,Subprocess,Sendmail,我对subprocess.Popen的工作原理有点困惑。如果有人有使用子流程模块和sendmail发送电子邮件的示例代码,那就太好了。我在子流程中遇到的第一个问题是,默认情况下它不接受完整的shell字符串命令 如果要执行与shell命令类似的操作,如: os.system("echo hello world") 您需要使用shell=True选项: subprocess.Popen("echo hello world", shell=True) 这并不能直接回答这个问题,但如果您对“DNS

我对
subprocess.Popen
的工作原理有点困惑。如果有人有使用子流程模块和sendmail发送电子邮件的示例代码,那就太好了。

我在
子流程
中遇到的第一个问题是,默认情况下它不接受完整的shell字符串命令

如果要执行与shell命令类似的操作,如:

os.system("echo hello world")
您需要使用shell=True选项:

subprocess.Popen("echo hello world", shell=True)

这并不能直接回答这个问题,但如果您对“DNS”的评论做出回应,它可能会解决您的问题

发送SMTP邮件时,您需要了解,作为参数传递给smtplib.sendmail()例程的“发件人”和“收件人”地址与收到邮件时在邮件的发件人:和收件人:头中看到的地址不同。这些参数将通过“mailfrom”和“RCPT to”命令成为指定给接收SMTP邮件程序的参数。这通常被称为邮件的“信封”,其值通常显示在Received:header行中


要指定所需的标题,您必须在消息正文之前自己提供它们。在这种情况下,它们会在消息正文前添加一个名为“msg”的元组。出于好奇,为什么要使用sendmail而不是Python的smtplib?实际上,我现在正在使用smtplib,但由于某种原因,收件人:地址不会出现在电子邮件中。问这个问题(通过发布相关代码)是否更有意义为什么收件人:地址没有显示在电子邮件中?@Joe,我提供了一个答案,说明了为什么您可能没有在邮件头中显示收件人地址。如果这对你有效,请接受它,但首先编辑你的问题,以总结这一系列评论,并明确表示接受的答案没有解决标题中描述的问题……这不是一个真正的问题:有充分的记录。这也是导致子流程出现问题的原因之一。:)