代码之家  ›  专栏  ›  技术社区  ›  Max

添加附件将在Outlook收件箱文件夹中创建新邮件项目

  •  0
  • Max  · 技术社区  · 7 年前

    我正在处理一个通过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文件的内容;它不能直接与指定的

    问题是消息 当您添加 但你对此无能为力。

    使用MSG文件- 原始MSG文件不在图片中。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Max    7 年前

    这个想法是创建一个新邮件,而不是修改现有的邮件。

    outlook = win32com.client.Dispatch("Outlook.Application")
    msg = outlook.CreateItem(0)
    msg.Attachments.Add(Source=str(attachment_path))
    msg.SaveAs(Path=save_path)