【发布时间】:2020-04-23 03:41:08
【问题描述】:
我想知道,这在 Outlook 2019 /Office 365 中是否可行?
我的目标是找到以下问题的解决方案
将收件箱中的附件保存到 C 盘上的 C:\temp 文件夹
从收件箱中删除邮件详细信息并从收件箱中删除邮件
我想要使这项工作正常进行,需要一个脚本和 Outlook 规则来照顾。感谢,如果有人可以帮助我。
谢谢
强化学习
【问题讨论】:
标签: outlook
我想知道,这在 Outlook 2019 /Office 365 中是否可行?
我的目标是找到以下问题的解决方案
将收件箱中的附件保存到 C 盘上的 C:\temp 文件夹
从收件箱中删除邮件详细信息并从收件箱中删除邮件
我想要使这项工作正常进行,需要一个脚本和 Outlook 规则来照顾。感谢,如果有人可以帮助我。
谢谢
强化学习
【问题讨论】:
标签: outlook
您可以使用 MailItem 类的SaveAs 方法将 Microsoft Outlook 项目保存到指定路径并以指定文件类型的格式保存。如果未指定文件类型,则使用 MSG 格式(.msg)。
要处理所有传入的项目,您需要订阅NewMailEx 事件,该事件会在新邮件到达收件箱且发生客户端规则处理之前触发。您可以使用 EntryIDCollection 数组中返回的条目 ID 来调用 NameSpace.GetItemFromID 方法并处理该项目。对于 Microsoft Outlook 处理的每个收到的项目,此事件都会触发一次。该项目可以是几种不同的项目类型之一,例如 MailItem、MeetingItem 或 SharingItem。 EntryIDsCollection 字符串包含对应于该项目的条目 ID。
Private Sub outApp_NewMailEx(ByVal EntryIDCollection As String)
Dim mail As Object
Dim oAttachment As Outlook.Attachment
Set mail = Application.Session.GetItemFromID(EntryIDCollection )
Dim sSaveFolder As String
sSaveFolder = "C:\Temp"
For Each oAttachment In mail.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
另一种方法是创建一个可以分配给规则的 VBA 子程序。示例 VBA 可能如下所示:
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:\Users\DT168\Documents\outlook-attachments\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
在Automatically download Outlook attachments to folder with VBA and rule 文章中了解更多信息。
【讨论】:
SaveAttachmentsToDisk 子。要在附件保存到磁盘后立即删除邮件,您可以使用Delete 方法。