蟒蛇:如何储存草案的电子邮件与BCC收到Exchange Server通过IMAP?
-
12-09-2019 - |
题
我试着商店的草案通过电子邮件IMAP到一个文件夹上运行MS交换。一切都好,只是Bcc收件人没有得到所示草案中消息储存在服务器上。Bcc接收者还没有收到电子邮件如果我把它用MS Outlook。如果我读了的消息后,与蟒蛇之后我把它保存在服务器上,我可以看到Bcc在该草案。
以下代码转载了这种行为:
import imaplib
import time
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
message = MIMEMultipart()
message['Subject'] = 'Test Draft'
message['From'] = 'test@test.net'
message['to'] = 'test@test.com'
message['cc'] = 'testcc@test.com'
message['bcc'] = 'testbcc@test.com'
message.attach(MIMEText('This is a test.\n'))
server= imaplib.IMAP4('the.ser.ver.ip')
server.login('test', 'test')
server.append("Drafts"
,'\Draft'
,imaplib.Time2Internaldate(time.time())
,str(message))
server.logout()
如果我经营这个代码,草案得到保存入的 Draft
文件夹在交换服务器。但是,如果我看看草案与MS Outlook,它不包括 bcc
收件人(message['bcc'] = 'testbcc@test.com'
). Message
, to
, from
, cc
好的,没错。
如果我下载的草案已经包括一个bcc从一个交换文件夹,我还可以看到bcc。只有上传不为我工作。
任何帮助非常赞赏。谢谢。顺便说一句衡不是一个选项。
更新:谢谢。 X-Receiver
不是为我工作。至于玩弄IMAP-夹在Outlook,我得到了一个有趣的结果。如果我访问该草案的通过IMAP-夹在Outlook,我看到bcc。但是,如果我接通过书兼文件夹,我没看见它。会玩一点点周围。
结论:谢谢你的投入。实际上,代码的工作。见下文的答案,我发现。
解决方案
其实,代码工作就好了。它创建具有所有正确的报头包括BCC将正确的邮件。
如何不邮件客户端显示的bcc吗
在邮件客户端(例如Python或MS Outlook中经由在IMAP或MAPI我情况)决定是否以及如何显示BCC报头。前景例如不从IMAP文件夹显示的bcc头。这是隐藏彼此,他们还没有从邮件剥离之前BCC收件人的功能(这是不是从标准明确一个BCC是否允许接收者看到所有其他密件抄送收件人与否,看的维基百科)。
负责处理BCC在发送的电子邮件?
现在假设我们已在邮件客户端起草的消息并将其存储在一个IMAP或MAPI文件夹。提供IMAP / MAPI文件夹中的服务器离开的消息草案不变。是什么在发送邮件发生了BCC报头是依赖于实现,并且可能会在邮件客户端上取决于这两个和的邮件传输代理(如微软的Exchange在我的情况下,服务器)。简单地说,人不同意的邮件客户端或邮件传输代理是否承担一切去除BCC头。这似乎然而,是大多数开发商是它的邮件客户端的业务邮件传输代理未接触到的邮件(如微软的Exchange,MS SMTP,进出口,奥维)意见的情况。在这种情况下,邮件传输代理发送电子邮件到接收方作为的 SMTP 所述RCPT TO:
定义一>通信,并保留邮件保持不变否则。一些其它的邮件传输代理剥去然而电子邮件BCC报头(例如sendmail的Lotus Notes)的。一个非常深入的讨论可以在开始的此处。
在MS Outlook和MS交换的情况下,MS Outlook的永远不会发送BCC(但发送单个电子邮件每个BCC收件人)和MS Exchange不接触电子邮件标题,但是发送的完整的电子邮件(可能BCC包括收件人)到在RCPT TO:
定义的收件人。
<强>结论强>
我不明白,有对BCC没有保证的行为,而且通常是客户端处理BCC。我将重写我的Python代码回路在密件抄送收件人并生成一个电子邮件为每个BCC收件人。
其他提示
它可能是这样的设计。毕竟,整点送,收件人是隐藏的。
我明白了,你是不是发送电子邮件,仅有储存。但是我猜是这一交换是内部规则在当消息是IMAP。所附的文件夹,造成bcc领域被剥离的距离。
显然,当消息被保存到一个文件夹中使用Outlook bcc场 不 剥离。但我猜outlook与交换使用的一些内部mechanizm(书兼?).
所有上述只是猜测。
一些有趣的东西你可以尝试:
- 在一个空Outlook兼档、创建一个IMAP帐户。它设置储存的草稿,并发送物品上交换服务器。
- 看看如果outlook使用IMAP可以节省bcc的草案正确。
我试过的上述利用的演变的电子邮件客户连接,以交换在IMAP。使用outlook(连接正常的方式),然后我看了在草稿,并发送物品。Bcc领域是缺少在这两个地方。
我相信这种支持我的理论。
尝试将BCC报头的该替代版本:
X-Receiver: someguy@gmail.com
交流特别是当你把它会把这个像BCC。但我敢打赌,当你通过IMAP写它不会破坏它。可以通过复制这条线包括多于一个的BCC收件人。
这是一个完整的劈,很明显。