首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python:如何发送带有收件人、抄送和密送的邮件?

python:如何发送带有收件人、抄送和密送的邮件?
EN

Stack Overflow用户
提问于 2009-10-09 22:29:46
回答 6查看 201.7K关注 0票数 135

出于测试目的,我需要在数百个电子邮箱中填充各种消息,为此我将使用smtplib。但在其他事情中,我需要能够发送消息不仅到特定的邮箱,但抄送和密件他们以及。在发送电子邮件时, smtplib 看起来不支持抄送和密送。

寻找建议如何做抄送或密件抄送发送来自python脚本的消息。

(而且-不,我不会创建一个脚本来向我的测试环境之外的任何人发送垃圾邮件。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-09 22:52:29

电子邮件头对smtp服务器无关紧要。当您发送电子邮件时,只需将抄送和密件抄送收件人添加到toaddr。对于CC,将它们添加到CC头部。

toaddr = 'buffy@sunnydale.k12.ca.us'
cc = ['alexander@sunydale.k12.ca.us','willow@sunnydale.k12.ca.us']
bcc = ['chairman@slayerscouncil.uk']
fromaddr = 'giles@sunnydale.k12.ca.us'
message_subject = "disturbance in sector 7"
message_text = "Three are dead in an attack in the sewers below sector 7."
message = "From: %s\r\n" % fromaddr
        + "To: %s\r\n" % toaddr
        + "CC: %s\r\n" % ",".join(cc)
        + "Subject: %s\r\n" % message_subject
        + "\r\n" 
        + message_text
toaddrs = [toaddr] + cc + bcc
server = smtplib.SMTP('smtp.sunnydale.k12.ca.us')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, message)
server.quit()
票数 184
EN

Stack Overflow用户

发布于 2009-10-09 22:41:38

收件人、抄送和密件抄送之间的区别仅出现在文本标题中。在SMTP级别,每个人都是接收者。

TO -有一个包含此收件人地址的TO:标头

抄送-存在包含此收件人地址的抄送:标头

密件抄送-此收件人根本不在标题中提及,但仍是收件人。

如果你有

TO: abc@company.com
CC: xyz@company.com
BCC: boss@company.com

您有三个收件人。电子邮件正文中的标题将仅包含收件人和抄送:

票数 21
EN

Stack Overflow用户

发布于 2015-04-14 20:17:56

请不要添加密件抄送标题。

看看这个:http://mail.python.org/pipermail/email-sig/2004-September/000151.html

还有:“请注意,sendmail()的第二个参数是作为列表传递的。您可以在列表中包括任意数量的地址,以便将邮件依次传递给每个收件人。由于信封信息与邮件标头是分开的,因此您甚至可以通过将其包含在方法参数中而不是邮件标头中来密送某人。”来自http://pymotw.com/2/smtplib

toaddr = 'buffy@sunnydale.k12.ca.us'
cc = ['alexander@sunydale.k12.ca.us','willow@sunnydale.k12.ca.us']
bcc = ['chairman@slayerscouncil.uk']
fromaddr = 'giles@sunnydale.k12.ca.us'
message_subject = "disturbance in sector 7"
message_text = "Three are dead in an attack in the sewers below sector 7."
message = "From: %s\r\n" % fromaddr
    + "To: %s\r\n" % toaddr
    + "CC: %s\r\n" % ",".join(cc)
    # don't add this, otherwise "to and cc" receivers will know who are the bcc receivers
    # + "BCC: %s\r\n" % ",".join(bcc)
    + "Subject: %s\r\n" % message_subject
    + "\r\n" 
    + message_text
toaddrs = [toaddr] + cc + bcc
server = smtplib.SMTP('smtp.sunnydale.k12.ca.us')
server.set_debuglevel(1)
server.sendmail(fromaddr, toaddrs, message)
server.quit()
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1546367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档