我正在处理一次通过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
始终创建一条临时消息并导入 MSG文件的内容;它不能直接与指定的 文件。问题在于,当您添加 附件,但是您无能为力。
重要的是,OOM不能使用MSG文件- 将其导入Outlook文件夹之一中的邮件后, 原始的MSG文件不在图片中。
是否有任何变通办法来防止Outlook在收件箱文件夹中创建新邮件?如果没有,如何使Outlook将其保存在“垃圾邮件”文件夹中?
我的目标是修改现有的空msg文件:添加主题行和附件。
答案 0 :(得分:0)
回答我自己的问题,
此想法是创建新邮件,而不是修改现有邮件。 这是代码:
outlook = win32com.client.Dispatch("Outlook.Application")
msg = outlook.CreateItem(0)
msg.Attachments.Add(Source=str(attachment_path))
msg.SaveAs(Path=save_path)