我想知道有人可以为此提供帮助。
我有这个可以发送电子邮件的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代码来实现上述目的?
提前致谢。
答案 0 :(得分:3)
删除BCC标题,但将密件抄送收件人保留在toaddrs
中。密送收件人都将收到电子邮件,但电子邮件客户端不会将其显示为收件人。
答案 1 :(得分:0)
来自python' sendmail
模块的smtplib
方法不尊重rfc 822关于bcc标头。相反,它只是解析一堆文本并将所有内容(包括密件抄送)发送给to,cc和bcc中的所有人。如果你可以升级到python3,python3' smtplib
包含一个方法send_message
,它将正确处理bcc标题。