我从以前的电子邮件提供商处收到了一些电子邮件,我已将其转发到我的Outlook 2010收件箱文件夹Received
。
我遇到的问题是原始电子邮件已作为附件发送而非作为转发!所以我想做的是:
Received
文件夹中的邮件&运行Received
文件夹中的转发邮件中提取附件,并将该附件保存到Forwarded
文件夹Received
文件夹中的转发邮件。我对Outlook VBA代码一无所知,所以我甚至没有起点!
任何助手都将不胜感激!
答案 0 :(得分:1)
我使用Outlook Attachment Remover Add-In删除附件并将其保存在文件系统中。我主要用它来减少我的配置文件在服务器上需要的空间。 一个很棒的事情是该工具添加了一个指向邮件原始附件的链接。因此,您仍然可以打开附件,但随后会从文件系统中打开。
答案 1 :(得分:0)
使用我之前的VBA Code to save an attachment (excel file) from an Outlook email that was inside another email as an attachment代码,这个Outlook VBA应该可以解决问题。
请确保
该代码需要一个目录C:\temp\
来处理嵌入的电子邮件
Sub SaveOlAttachments()
Dim olFolder As MAPIFolder
Dim olFolder2 As MAPIFolder
Dim msg As MailItem
Dim msg2 As MailItem
Dim strFilePath As String
Dim strTmpMsg As String
'path for creating attachment msg file for stripping
strFilePath = "C:\temp\"
strTmpMsg = "KillMe.msg"
'My testing done in Outlok using a "temp" folder underneath Inbox
Set olFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set olFolder2 = olFolder.Folders("Forwarded")
Set olFolder = olFolder.Folders("Received")
For Each msg In olFolder.Items
If msg.Attachments.Count > 0 Then
If Right$(msg.Attachments(1).FileName, 3) = "msg" Then
msg.Attachments(1).SaveAsFile strFilePath & strTmpMsg
Set msg2 = Application.CreateItemFromTemplate(strFilePath & strTmpMsg)
End If
msg.Delete
msg2.Move olFolder2
End If
Next
End Sub