Python Smtplib BCC问题?

时间:2015-06-26 06:02:51

标签: python gmail smtplib

我想知道有人可以为此提供帮助。

我有这个可以发送电子邮件的python代码。

import smtplib
import string
import sys
import os

fromaddr = 'first-email@gmail.com'

toaddr = 'second-email@gmail.com'
cc = []
bcc = ['third-email@gmail.com', 'forth-email@gmail.com']
subject = 'This is a test email'

msg = string.join((
    'From: %s' % fromaddr,
    'To: %s' % toaddr,
    'CC: %s' % ', '.join(cc),
    'BCC: %s' % ', '.join(bcc),
    'Subject: %s' % subject, '',
    'hello world'
), '\r\n')

print msg

toaddrs = [toaddr] + cc + bcc

print toaddrs

server = smtplib.SMTP('smtp.googlemail.com',587)
server.starttls()
server.login('my_gmail_account','my_gmail_password')
server.sendmail(fromaddr,toaddrs,msg)
server.quit()

我遇到的问题是那些我认识的人,即third-email@gmail.com和forth-email@gmail.com,他们可以看到谁在bcc'd列表中。

实施例,

From : first-email@gmail.com
To : second-email@gmail.com
Bcc : third-email@gmail.com,forth-email@gmail.com

这不是正确的格式。

我期待结果应该是这样的。

一个。对于second-email@gmail.com用户

这个人应该看到这个

From : first-email@gmail.com
To : second-email@gmail.com
Bcc : this is hidden

湾对于third-email@gmail.com用户

这个人应该看到这个

From : first-email@gmail.com
To : second-email@gmail.com
Bcc : third-email@gmail.com

℃。对于forth-email@gmail.com用户

这个人应该看到这个

From : first-email@gmail.com
To : second-email@gmail.com
Bcc : forth-email@gmail.com

有什么方法可以增强我的python smtplib代码来实现上述目的?

提前致谢。

2 个答案:

答案 0 :(得分:3)

删除BCC标题,但将密件抄送收件人保留在toaddrs中。密送收件人都将收到电子邮件,但电子邮件客户端不会将其显示为收件人。

答案 1 :(得分:0)

来自python' sendmail模块的smtplib方法不尊重rfc 822关于bcc标头。相反,它只是解析一堆文本并将所有内容(包括密件抄送)发送给to,cc和bcc中的所有人。如果你可以升级到python3,python3' smtplib包含一个方法send_message,它将正确处理bcc标题。