Outlook邮件读取状态变更

Python读取自己的邮箱中第一封未读邮件的发件人,接收邮件的日期,主题,然后将读取状态变为未读

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: Python连接Outlook读取邮件和发送邮件中的 读取邮件 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    先安装pywin32库,使用以下命令进行安装:

    pip install pywin32
    

    然后,使用以下代码来读取未读邮件信息并标记为已读:

    import win32com.client
    
    # 连接到Outlook应用程序
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    
    # 获取收件箱文件夹
    inbox = outlook.GetDefaultFolder(6)
    
    # 获取未读邮件
    unread = inbox.Items.Restrict("[Unread] = True")
    
    # 如果存在未读邮件
    if unread.Count > 0:
        # 获取第一封未读邮件
        mail = unread.GetFirst()
    
        # 获取发件人、接收日期和主题
        sender = mail.SenderName
        received_date = mail.ReceivedTime
        subject = mail.Subject
    
        # 标记邮件为已读
        mail.UnRead = False
    
        # 保存邮件更改
        mail.Save()
    
        print("发件人:", sender)
        print("接收日期:", received_date)
        print("主题:", subject)
    else:
        print("没有未读邮件")
    

    以上代码通过pywin32库连接到Outlook应用程序,并获取收件箱文件夹。然后,使用Restrict方法过滤所有未读邮件。如果存在未读邮件,获取第一封未读邮件的发件人、接收日期和主题,并将其状态从未读变为已读。最后,打印出获取的邮件信息。

    请注意,该代码只能读取默认邮箱的收件箱。如果需要读取其他文件夹或其他Outlook账户的邮件,请相应地修改代码。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^