Office的VB脚本:从1个特定的电子邮件地址中删除附件?

时间:2014-12-31 15:59:31

标签: vba email outlook

我已经完成了我在工作中使用的现有(和工作)副本中修改过的脚本(见帖子末尾)。我需要这个脚本来查看发件人,如果它来自“esupport@domainname.biz”,那么我希望它删除附件并将其转储到我们这里的云驱动器上。但我只想从该特定电子邮件地址获取附件。我们有其他使用同一帐户的流程,我不希望此代码干扰其中任何一个。非常感谢任何正确方向的推动,非常感谢你。

我的代码:

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String

'Return sender's email

If Email.SenderEmailAddress = "esupport@domainname.biz" Then

    saveFolder = "v:\Anthony - Missing Invoices\Report"

     For Each objAtt In itm.Attachments

          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName

          Set objAtt = Nothing

     Next

End Sub

1 个答案:

答案 0 :(得分:1)

您无法直接以此格式运行此运行代码。你必须通过它。

在代码中单击代码,然后单击F8以逐步执行代码。你不会得到回复。

一个简单的例子,其中有一个开放的mailitem。 您可以将它传递给saveAttachtoDisk,如下所示:

Sub run_saveAttachtoDisk
    dim currItem as mailitem
    set currItem = activeinspector.currentitem
    saveAttachtoDisk curritem
end sub

通常的方法是在规则中对传入邮件运行代码。在RunAScript中选择saveAttachtoDisk。

可以在规则中指定发件人。如果你不想这样,那么取消注释if / end if语句。

您可以执行“立即运行规则”来处理现有邮件。

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)

    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String

    'If Email.SenderEmailAddress = "esupport@domainname.biz" Then

        saveFolder = "v:\Anthony - Missing Invoices\Report"

        For Each objAtt In itm.Attachments
            objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
        Next

    'end if

End Sub