【发布时间】:2019-03-17 01:45:19
【问题描述】:
我正在处理一次通过 Outlook 创建的空 msg 文件。以下代码将附件添加到电子邮件(您可以使用msg.SaveAs(Path=save_path) 保存它)。
import win32com.client
msg_path = r'C:\email.msg'
attachment_path = r'C:\specimen.pdf'
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
msg = outlook.OpenSharedItem(msg_path)
msg.Attachments.Add(Source=attachment_path)
问题:最后一行 msg.Attachments.Add(Source=attachment_path) 在收件箱文件夹中创建了一个新的重复邮件。
我在这里找到了有关该问题的旧讨论: Adding attachment creates new MailItem in inbox folder。 以下是那里的一些引文:
OpenSharedItem总是创建一个临时消息并导入 味精文件的内容;它不能直接与指定的 文件。问题是当您添加 附件,但您对此无能为力。
重要的部分是 OOM 不使用 MSG 文件 - 一旦它被导入到 Outlook 文件夹之一的邮件中, 原始味精文件不在图片中。
是否有任何解决方法可以阻止 Outlook 在收件箱文件夹中创建新邮件?如果没有,如何让 Outlook 将其保存在垃圾邮件文件夹中?
我的目标是修改现有的空味精文件:添加主题行和附件。
【问题讨论】:
-
事实证明,即使是 msg 文件中的手动附件(插入 -> 附加文件)也会在收件箱文件夹中创建一个新邮件。
-
手动撰写新电子邮件,将文件附加到其中,然后另存为 msg 独立文件不会在收件箱文件夹中创建新电子邮件。