【发布时间】: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 脚本可以解析和保存附件和图像(但我的是网络链接)。但我会看看我明天能做什么
-
我发现有人提到,如果您将电子邮件导出为富文本格式,它会使内联图像作为附件访问,也许可以尝试一下。