繁体   English   中英

如何通过 Python 从辅助 Outlook 电子邮件中下载附件?

[英]How download attachments from secondary outlook email by Python?

我需要从 Outlook 下载附件,但不需要从我的 Outlook 下载。

我需要来自次要组地址(如FiTeam@email.com with pass = asdf)。

现在我有工作脚本可以从我自己的 Outlook 地址下载它。

    import os


path = os.path.expanduser("D:\DownloadingEmail\\replenishment")
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items


def saveattachemnts(subject):
    for message in messages:
        if message.Subject.startswith(subject):
            # body_content = message.body
            attachments = message.Attachments
            attachment = attachments.Item(1)
            for attachment in message.Attachments:
                attachment.SaveAsFile(os.path.join(path, str(attachment)))
                if message.Subject == subject and message.Unread:
                    message.Unread = False
                continue

saveattachemnts('Replenishment')

如何修改它以从FiTeam@email.com?收件箱中下载附件FiTeam@email.com?

要访问共享inbox尝试以下操作

inbox = outlook.Folders["FiTeam@email.com"].Folders["Inbox"]

您还应该将("D:\\DownloadingEmail\\\\replenishment")修复为("D:\\\\DownloadingEmail\\\\replenishment")


SaveAsFile(os.path.join(path, str(attachment)应该是SaveAsFile(os.path.join(path, str(attachment.FileName)


message.Unread = Falsemessage.UnRead


请参阅下面的示例代码-

import os
import win32com.client
path = os.path.expanduser("D:\\DownloadingEmail\\replenishment")
print(path)
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders["FiTeam@email.com"].Folders["Inbox"]
messages = inbox.Items


def save_attachments(subject):
    for message in messages:
        if message.Subject.startswith(subject):

            for attachment in message.Attachments:
                attachment.SaveAsFile(os.path.join(path, str(attachment.FileName)))
                if message.UnRead:
                    message.UnRead = False
                continue


save_attachments('Replenishment')

调用outlook.CreateRecipient("FiTeam@email.com") ,然后将返回的Recipient对象传递给outlook.GetSharedDefaultFolder()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM