Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
Python 为什么可以';我不能使用此脚本向多个收件人发送电子邮件吗?_Python_Email_Gmail_Gmail Imap - Fatal编程技术网

Python 为什么可以';我不能使用此脚本向多个收件人发送电子邮件吗?

Python 为什么可以';我不能使用此脚本向多个收件人发送电子邮件吗?,python,email,gmail,gmail-imap,Python,Email,Gmail,Gmail Imap,为什么我不能使用此脚本向多个收件人发送电子邮件 我没有收到任何错误或回退,并且第一个收件人确实收到了电子邮件。其他人都没有 剧本: #!/usr/bin/python import smtplib SMTP_SERVER = 'smtp.gmail.com' SMTP_PORT = 587 recipient = 'email@domain.com; email2@domain.com;' sender = 'me@gmail.com' subject = 'the subject' bod

为什么我不能使用此脚本向多个收件人发送电子邮件

我没有收到任何错误或回退,并且第一个收件人确实收到了电子邮件。其他人都没有

剧本:

#!/usr/bin/python
import smtplib

SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587

recipient = 'email@domain.com; email2@domain.com;'
sender = 'me@gmail.com'
subject = 'the subject'
body = 'the body'
password = "password"
username = "me@gmail.com"

body = "" + body + ""

headers = ["From: " + sender,
           "Subject: " + subject,
           "To: " + recipient,
           "MIME-Version: 1.0",
           "Content-Type: text/html"]
headers = "\r\n".join(headers)

session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)

session.ehlo()
session.starttls()
session.ehlo
session.login(username, password)

session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()

标准标题中的收件人必须用逗号而不是分号分隔。我责怪Microsoft Outlook让人们产生了相反的想法。

标准标题中的收件人必须用逗号分隔,而不是分号。我责怪Microsoft Outlook让人们产生了相反的想法。

分号不是收件人标题中地址的正确分隔符。必须使用逗号


编辑:我现在看到您不正确地使用了库。您提供的字符串将始终被解释为单个地址。必须提供要发送给多个收件人的地址列表。

分号不是收件人标题中地址的正确分隔符。必须使用逗号


编辑:我现在看到您不正确地使用了库。您提供的字符串将始终被解释为单个地址。您必须提供要发送给多个收件人的地址列表。

您可以将电子邮件放入一个数组中,然后在数组中循环发送每封电子邮件,如下所示: (我的python已经生锈了……请原谅我的语法)


您可以,只需将电子邮件放入一个数组中,然后针对每封电子邮件在数组中循环,如下所示: (我的python已经生锈了……请原谅我的语法)


在代码中更改此选项:

recipient = ['email@domain.com','email2@domain.com']

headers = ",".join(headers)

session.sendmail(sender, recipient.split(","), headers + "\r\n\r\n" + body)

在代码中更改此选项:

recipient = ['email@domain.com','email2@domain.com']

headers = ",".join(headers)

session.sendmail(sender, recipient.split(","), headers + "\r\n\r\n" + body)
或者

recipient = ', '.join(recipient.split('; '))
如果您的收件人是一串分号分隔的地址。

或者

recipient = ', '.join(recipient.split('; '))

如果您的收件人是一个由分号分隔的地址字符串。

使用逗号并不能解决问题。您是否有标准电子邮件标题组成规范的URL?第3.6.3节,涉及地址列表,其定义为
地址列表=(地址*(“,”地址))/obs addr list
。obs地址列表也使用逗号。@KyleJones,谢谢你的链接。第3.4节也很有用,因为它定义了
地址列表
@Trindaz,请参阅Kyle Jones添加的链接。使用逗号并不能解决问题。您是否有标准电子邮件标题组成规范的URL?第3.6.3节,涉及地址列表,其定义为
地址列表=(地址*(“,”地址))/obs addr list
。obs地址列表也使用逗号。@KyleJones,谢谢你的链接。第3.4节也很有用,因为它定义了
地址列表
@Trindaz,请参阅Kyle Jones添加的链接。使用逗号并不能解决问题。你有标准邮件头组成规范的URL吗?谢谢Kyle。我没有意识到这一点,因为我认为,因为查看第一个收件人的GMail帐户中的电子邮件“详细信息”显示第二个收件人已抄送,这是GMail端的一个问题。使用逗号并不能解决问题。你有标准邮件头组成规范的URL吗?谢谢Kyle。我没有意识到这一点,因为我认为,因为查看第一个收件人的GMail帐户中的电子邮件“详细信息”显示,第二个收件人被抄送,这是GMail端的一个问题。