微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Outlook电子邮件中提取嵌入式图像

如何解决从Outlook电子邮件中提取嵌入式图像

OS / Outlook / CDO版本的差异可能是造成混淆的原因,因此,以下是使它在WinXP / Outlook 2007 / CDO 1.21上运行的步骤:

  • 安装CDO 1.21
  • 安装win32com.client
  • 转到C:\ Python25 \ Lib \ site-packages \ win32com \ client \目录运行以下命令:

    python makepy.py

  • 从列表中选择“ Microsoft CDO 1.21库(1.21)”,单击“确定”。

    C:\ Python25 \ Lib \ site-packages \ win32com \ client> python makepy.py 生成到C:\ Python25 \ lib \ site-packages \ win32com \ gen_py \ 3FA7DEA7-6438-101B-ACC1-00AA00423326x0x1x33.py 从类型库构建定义… 正在产生… 导入模块

  • 检查刚刚生成文件3FA7DEA7-6438-101B-ACC1-00AA00423326x0x1x33.py将使您了解可用的类,方法属性和常量。

现在我们完成了无聊的步骤,下面是有趣的部分:

import win32com.client
from win32com.client import dispatch

session = dispatch('MAPI.session')
session.logon ('Outlook') # this is profile name
inBox = session.InBox
messages = session.InBox.Messages 
message = inBox.Messages.GetFirst()

if(message):
    attachments = message.Attachments
    for i in range(attachments.Count):
        attachment = attachments.Item(i + 1) # yep, indexes are 1 based

        filename = "c:\\tmpfile" + str(i)
        attachment.WritetoFile(FileName=filename)
session.logoff()

如果您使用的是旧版本的CDO(用于Win2k的CDO),则相同的通用方法也将起作用

解决方法

我正在使用Microsoft的CDO(协作数据对象)以编程方式从Outlook邮箱中读取邮件并保存嵌入式图像附件。我正在尝试使用Win32扩展从Python进行此操作,但是使用CDO的任何语言的示例都将有所帮助。

到目前为止,我在这里…

以下Python代码将读取我邮箱中的最后一封电子邮件,打印附件的名称,并打印邮件正文:

from win32com.client import Dispatch

session = Dispatch('MAPI.session')
session.Logon('','',1,'exchange.foo.com\nbar');
inbox = session.Inbox
message = inbox.Messages.Item(inbox.Messages.Count)

for attachment in message.Attachments:
    print attachment

print message.Text

session.Logoff()

但是,附件名称类似:“ zesjvqeqcb_chart_0”。在电子邮件源中,我看到这样的图像源链接:

因此,是否可以使用此CID URL(或其他任何内容)提取实际图像并将其保存在本地?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。