【问题标题】:How to invoke code when there is incoming mail?收到邮件时如何调用代码?
【发布时间】:2015-05-27 09:58:34
【问题描述】:

我有 VBA 代码可以在邮件进入 Outlook 后立即下载附件。

如何调用此代码或有其他方式自动下载附件?

Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim saveFolder As String
    saveFolder = "D:\outlook\"
    For Each objAtt In itm.Attachments
        MsgBox objAtt
        objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        MsgBox saveFolder & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next
End Sub

【问题讨论】:

  • 传递给 SaveAsFile 方法的实际文件路径是什么?

标签: vba outlook email-attachments


【解决方案1】:

您似乎正在尝试创建一个规则来触发 VBA 脚本以将附件保存在磁盘上。如果是这样,我建议从代码中删除任何 MsgBox 语句。它可能会阻止代码运行。相反,您可以在代码中使用Debug.Print 语句。请参阅Where does VBA Debug.Print log to? 了解更多信息。

您可以考虑处理 Application 类的 NewMailEx 事件,而不是使用规则。对于 Microsoft Outlook 处理的每个收到的项目,该事件都会触发一次。该项目可以是几种不同的项目类型之一,例如 MailItem、MeetingItem 或 SharingItem。 EntryIDsCollection 字符串包含对应于该项目的条目 ID。

最后,您可能会发现 Getting Started with VBA in Outlook 2010 文章很有帮助。

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 2011-02-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多