我有以下代码可以使用,它可以在我的Outlook收件箱中读取最新的电子邮件并打印该邮件的正文。但是,我希望能够指定静态电子邮件地址,并返回该人的所有消息。我如何更改代码来做到这一点?
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items
message = messages.Getlast
body_content = message.body
print body_content
我认为这就像将'messages.Getlast'更改为'messages.Get('这里的电子邮件地址')一样容易,但没有运气。
提前感谢您的帮助。
答案 0 :(得分:2)
您已经有一个脚本可以让您获取文件夹中的消息列表:
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items
收到所有邮件后,您只需检查邮件发件人是否相同:
sender = "my_sender"
sender = sender.lower()
for message in messages:
if sender in message.sender.lower():
# This message was send by sender
print message.body
该代码应打印message in messages
中sender
所包含的每个message.sender
的正文。
我添加了lower()
函数以避免上限出现问题。您可能想要将其删除。
希望它会有所帮助。