【问题标题】:Outlook script won't save attachmentOutlook 脚本不会保存附件
【发布时间】:2019-05-05 09:01:13
【问题描述】:

以下 Outlook 规则应该将来自 sender@bookstore.com 的带有礼品卡购买主题行的附件保存到磁盘,然后将电子邮件移动到“删除项目”文件夹,这样它就不会再次处理它。该规则在收到新电子邮件并将电子邮件移至“删除项目”文件夹但未保存附件时运行。

我怀疑该规则首先将邮件移动到“删除项目”文件夹,然后执行脚本以保存不再位于“收件箱”文件夹中的电子邮件附件。

我无法更改以下 Outlook 规则的顺序以先执行脚本然后移动邮件,但 Outlook 不允许。

有什么推荐吗?

Apply this rule after the message arrives
from sender@bookstore.com
 and with Gift Card Purchase in the subject
 and on this computer only
move it to the Deleted Items folder
 and run Project1.SaveAttachment
Public Sub SaveAttachment(MItem As Outlook.MailItem)
    Dim oAttachment As Outlook.Attachment
    Dim sSaveFolder As String
    sSaveFolder = "C:\Temp\"
    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
    Next
End Sub

【问题讨论】:

  • 将项目移动到脚本内的已删除文件夹,这样您就不需要额外的删除规则。还要为您的规则添加一些错误处理,因为它可能会因某些项目类型而崩溃。
  • 经过进一步测试,该规则首先将电子邮件移至已删除邮件,然后将下一封电子邮件的附件保存在收件箱文件夹中。有没有办法先保存附件然后移动电子邮件?我无法更改规则的顺序...一旦我选择移动到特定文件夹并运行脚本,规则首先执行移动功能,然后执行脚本。希望在脚本中添加逻辑以将电子邮件移动到“已删除邮件”文件夹,然后我可以删除将其移动到规则中的“已删除邮件”文件夹选项。

标签: vba outlook


【解决方案1】:

在你的代码中使用MailItem.Delete Method (Outlook)

通过删除move it to the Deleted Items folder 更新您的规则,然后在Next 之后添加以下代码MItem.Delete

例子

For Each oAttachment In MItem.Attachments
    oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next

MItem.Delete

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 2022-01-17
    • 2014-04-20
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2017-08-28
    相关资源
    最近更新 更多