发送电子邮件给多个用户

时间:2019-09-29 17:47:15

标签: python smtp

我想向多个用户发送电子邮件。目前,我只能将其发送给一个用户。我想制作一个属性文件,以便每当需要从列表中添加或删除任何用户时,都无需编辑.py文件中的任何内容。

我能够将电子邮件发送给一位用户

import smtplib
import email.utils
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


me = abc@an.com
you = jud@gm.com
msg = MIMEMultipart('alternative')
msg['Subject']="subject of the email"
msg['From"]=me
msg['To']=you
text="hi"

html= '''body of email'''
part1=MIMEText(text, 'plain')
part1=MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
s = smtplib.SMTP(host,port)
s.sendmail(me,you, msg.as_string())
s.quit()

电子邮件应发送给多个用户。

1 个答案:

答案 0 :(得分:0)

自变量you可以是电子邮件地址列表。您将需要修改代码以将To:标头设置为接受字符串列表

msg['To'] = '.'.join(you)

或者您可以使用占位符,例如

msg['To'] = 'undisclosed-recipients:;'

但是除此之外,您现有的代码应该可以正常工作。

更详细地讲,后者基本上等同于将所有地址都放在Bcc:标头中,以便收件人无法看到彼此的地址。

要从文件中填充you,请尝试

with open(filename) as f:
    you = f.readlines()

其中文件每行包含一个电子邮件地址。