首页 > 解决方案 > 如何使用 Python MAPI 从 Outlook 获取“收件人”姓名和电子邮件地址

问题描述

就像.SenderName给我发件人的名字一样,可以很容易地附加到列表中,他们是否有任何对象对我的邮件的“收件人”做同样的事情。

我已经尝试过.Recipients,但一旦添加到列表中,它们就会显示为COMObjectsPython 无法操作的。

我想要的只是一个简单的收件人姓名列表。

标签: pythonoutlookautomation

解决方案


最简单的方法是

例子

import win32com.client

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders["0m3r@Email.com"].Folders["Inbox"]


def get_email_address():
    for message in inbox.Items:
        print("========")
        print("Subj: " + message.Subject)
        print("Email Type: ", message.SenderEmailType)
        if message.Class == 43:
            try:
                if message.SenderEmailType == "SMTP":
                    print("Name: ", message.SenderName)
                    print("Email Address: ", message.SenderEmailAddress)
                    print("Date: ", message.ReceivedTime)
                elif message.SenderEmailType == "EX":
                    print("Name: ", message.SenderName)
                    print("Email Address: ", message.Sender.GetExchangeUser(
                                                              ).PrimarySmtpAddress)
                    print("Date: ", message.ReceivedTime)
            except Exception as e:
                print(e)
                continue


if __name__ == '__main__':
    get_email_address()

推荐阅读