【问题标题】:Saving email from Outlook into folder with Python使用 Python 将 Outlook 中的电子邮件保存到文件夹中
【发布时间】:2022-02-27 23:18:12
【问题描述】:

我正在尝试从 Outlook 自动将电子邮件保存在我们的文件夹中。我没有看到将电子邮件另存为 .msg 或任何其他类型的代码。

import win32com.client
import os
os.chdir("filepathhere")
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
accounts= win32com.client.Dispatch("Outlook.Application").Session.Accounts;

Tokyo = "email from Tokyo"

inbox = outlook.GetDefaultFolder(6) 
subject = Tokyo
messages = inbox.Items
message = messages.GetFirst()

for msg in messages:
    if msg.subject == Tokyo:
        msgname = msg.subject
        msgname=str(msgname)
        print msgname
        message.saveasfile(msgname+".msg")

我收到错误消息: 属性错误:.saveasfile

【问题讨论】:

  • 如果你想保存你在循环中的消息,你的最后一行应该是msg.saveasfile()。这有帮助吗?我对 win32com 包不熟悉。
  • 我仍然收到错误消息:AttributeError: .saveasfile
  • 你从哪里得到的saveasfile?您是否只是在猜测对象可能提供哪些方法并交叉手指?在 MSDN 文档中查找类型。
  • saveasfile() 是我见过的人们用来保存电子邮件附件的方法。我一直没能找到正确的命令
  • 首先,你在哪里看到的?如果你给我们一个链接,我们可以检查你是否真的和他们做同样的事情。其次,您不是在尝试保存附件,而是在尝试保存消息。这些显然将是不同的类型,那么您为什么假设它们将具有相同的方法?

标签: python email outlook


【解决方案1】:

SaveAsFile 是一种只能用于附件的方法。

对于消息本身,只需使用message.SaveAs()

来源:https://msdn.microsoft.com/en-us/VBA/Outlook-VBA/articles/mailitem-saveas-method-outlook

【讨论】:

    【解决方案2】:

    以下代码有效:

    from win32com.client import Dispatch
    import os
    import re
    
    outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
    inbox = outlook.GetDefaultFolder(6)
    print(inbox)
    messages = inbox.items
    message = messages.GetLast()
    name = str(message.subject)
    #to eliminate any special charecters in the name
    name = re.sub('[^A-Za-z0-9]+', '', name)+'.msg'
    #to save in the current working directory
    message.SaveAs(os.getcwd()+'//'+name)
    

    【讨论】:

      【解决方案3】:

      我已设法让您的代码正常工作。 在第 20 行,我认为您有问题:

      message.saveasfile(msgname+".msg")
      

      此“消息”应保存收件箱中的第一封电子邮件,而不是您在 for 循环中的当前消息。我相信这只是一个错字。无论如何,我认为您打算使用:

      msg.saveas(msgname+".msg")
      

      这会将文件直接保存到我的 Documents 文件夹中。我还没有设法让您的 os.chdir 将文件保存到指定的目的地。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-03
        • 2012-12-01
        • 2018-10-16
        • 2015-06-18
        • 1970-01-01
        • 2019-12-24
        • 2021-09-22
        • 2020-06-17
        相关资源
        最近更新 更多