【问题标题】:Exporting emails from outlook to Excel Including images将电子邮件从 Outlook 导出到 Excel 包括图像
【发布时间】:2018-08-26 04:35:25
【问题描述】:

我目前正在处理我的项目,即将电子邮件从 Outlook 导出到我的 Excel 文件。

我当前的代码只导出文本而不是图像。我的一些电子邮件有截图(.png/.jpg)。

有解决办法吗?

这是我当前在 Excel 上的代码:

Sub getDataFromOutlook()

'~~Declarations~~'
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer

'~~Set email to be saved~~'
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("SAMPLE")

i = 1


For Each OutlookMail In Folder.Items
'~~Write to Excel~~'
If OutlookMail.ReceivedTime >= Range("email_Receipt_Date").Value Then
    Range("email_Subject").Offset(i, 0).Value = OutlookMail.Subject
    Range("email_Subject").Offset(i, 0).Columns.AutoFit
    Range("email_Subject").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
    Range("email_Date").Offset(i, 0).Columns.AutoFit
    Range("email_Date").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
    Range("email_Sender").Offset(i, 0).Columns.AutoFit
    Range("email_Sender").Offset(i, 0).VerticalAlignment = xlTop
    Range("email_Body").Offset(i, 0).Value = OutlookMail.Body
    Range("email_Body").Offset(i, 0).Columns.AutoFit
    Range("email_Body").Offset(i, 0).VerticalAlignment = xlTop

    i = i + 1
End If

Next OutlookMail

'~~Set to Null~~'
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing

End Sub

【问题讨论】:

  • 如果图像是内嵌在电子邮件中的,则它们实际上可能是 html IMG 标签并链接到网站。如果是这种情况,您可以阅读 html 标签并下载图片。
  • 你说得对,这些图片与电子邮件正文是内联的。但它没有在其他网站上重定向的链接。这只是一个截图。
  • 在这种情况下可能是base64图像?我还没有查看带有内联图像的消息的 html。我明天上班可以看看,我还有一个 VBA 脚本可以解析和保存附件和图像(但我的是网络链接)。但我会看看我明天能做什么
  • 我发现有人提到,如果您将电子邮件导出为富文本格式,它会使内联图像作为附件访问,也许可以尝试一下。

标签: excel vba outlook


【解决方案1】:

看看这篇文章:

How to copy Outlook mail message into excel using VBA or Macros

我认为它应该可以满足您的需求(向下滚动到底部)。

【讨论】:

  • 这也只导出文本。
【解决方案2】:

你试过Attachments吗?我没有必要这样做,但这是我最初努力的地方。

MailItem.Attachments.Item(0) 让您处理第一个附件。

由于您的变量 OutlookMail 包含 MailItem,所以我要尝试的第一件事是...

ActiveSheet.Pictures.Insert(OutlookMail.Attachments.Item(0))

我会尝试的第二件事是寻找答案。

从电子邮件中提取图片并将图片插入 Excel 并不是什么晦涩难懂的任务,因此有很多详细的示例可供查找它们的人使用。

当我问我的滑板是否在前院时,我想起了祖母的回答。 “用眼睛看,而不是用嘴看”,这是她告诉我的。在这里感觉很合适。

【讨论】:

  • 我相信这只会从电子邮件中导出附加的图像。我正在努力的是导出电子邮件正文上的图像。我查看了此博客 [datanumen.com/blogs/… 仅导出附加图像。我明天再试一次,我现在正在休假,哈哈。谢谢爷爷! :P
  • 你可能是对的......我没有费心去发现。但我确实制作了一个工具来帮助我的应用程序人员下载随附的发票。主要是 pdf、doc、一些 xls,偶尔还有一个 htm,偶尔会有一只奇怪的鸭子用手机拍下发票的照片并附上。问题是,他来找我说该工具正在获取公司徽标。所以我看了看,果然,我看到了一堆 jpg、png 和 gif。我仔细阅读了他的收件箱,找不到一个作为附件的邮件。也许 sig 有隐身附件,也许他们都偷偷溜进一个 htm,或者你不对。你试过了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-19
  • 1970-01-01
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多