【发布时间】:2014-11-09 12:05:05
【问题描述】:
我正在尝试使用 Outlook 规则和 VBA 将电子邮件正文复制到纯文本文件中以进行进一步处理,然后从 Outlook 中删除该邮件。
我无法使用 Outlook 规则删除邮件,因为我无法控制 Outlook 在规则中执行操作的顺序。如果我可以将“运行脚本,然后删除”作为一项操作,那么就足够了。但是,Outlook 只允许我先删除邮件,然后运行脚本,这对我来说没用。
我显然不知道从地面上的一个洞中获得的 VBA,但根据我从谷歌搜索中收集到的信息,我有以下 VBA 可以满足我的需要,除了我不知道如何删除电子邮件。
到目前为止的代码:
Public Sub SaveBody3(Item As Outlook.MailItem)
Dim olApp As Outlook.Application
Dim olNs As NameSpace
Dim Fldr As MAPIFolder
Dim olMail As MailItem
Dim i As Integer
Dim fso As New FileSystemObject
Dim ts As TextStream
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
i = 1
For Each olMail In Fldr.Items
If InStr(olMail.Subject, "my_very_specific_subject_line") Then
Set ts = fso.OpenTextFile("\\path\to\textfile\filename_" & Format(Now, "yyyymmddhhnnss") & ".txt", ForWriting, True)
ts.Write (olMail.Body)
ts.Close
olMail.Delete 'Shouldn't this delete??
Set ts = Nothing
Set fso = Nothing
i = i + 1
End If
Next olMail
Set Fldr = Nothing
Set olNs = Nothing
Set olApp = Nothing
End Sub
【问题讨论】:
-
我会问你我问每个有类似问题的人:为什么还要尝试删除?只需在适当的时间间隔归档或自动归档您的收件箱,就可以清理旧项目。也就是说,我希望
.Delete方法应该删除味精(当我测试一个简单的案例时它会删除)。你有错误吗?