首页 文章

将当前消息转发为附件,然后删除原始消息

提问于
浏览
2

我的工作Outlook 2010帐户上收到了大量垃圾邮件 . 我收到了垃圾邮件阻止程序地址,以便将垃圾邮件(作为附件)转发给 .

我想点击功能区上的一个图标(我已经有了这个)并运行VBA代码获取当前消息,将其附加到新消息,向新消息添加地址,发送新消息然后删除原始邮件 . (删除可以将邮件放入“已删除邮件”文件夹中,也可以永久删除 . )

SOLVED!!!!

这是完全符合我要求的代码 . 我在网上找到它并修改它以满足我的需要 .

Sub ForwardAndDeleteSpam()
'
' Takes currently highlighted e-mail, sends it as an attachment to
' spamfilter and then deletes the message.
'

    Set objItem = GetCurrentItem()
    Set objMsg = Application.CreateItem(olMailItem)

    With objMsg
        .Attachments.Add objItem, olEmbeddeditem
        .Subject = "SPAM"
        .To = "spamfilter@schools.nyc.gov"
        .Send
    End With
    objItem.Delete

    Set objItem = Nothing
    Set objMsg = Nothing
End Sub

Function GetCurrentItem() As Object
    On Error Resume Next
    Select Case TypeName(Application.ActiveWindow)
    Case "Explorer"
        Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
    Case "Inspector"
        Set GetCurrentItem = Application.ActiveInspector.CurrentItem
    Case Else
        ' anything else will result in an error, which is
        ' why we have the error handler above
    End Select

    Set objApp = Nothing
End Function

1 回答

  • 0

    您可以使用它来浏览一系列电子邮件,而不是仅通过调整代码如下所示

    Sub ForwardSpamToNetworkBox()
    
    On Error Resume Next
    
    Dim objItem As Outlook.MailItem
    
    If Application.ActiveExplorer.Selection.Count = 0 Then
       MsgBox ("No item selected")
       Exit Sub
    End If
    
    For Each objItem In Application.ActiveExplorer.Selection
    Set objMsg = Application.CreateItem(olMailItem)
        With objMsg
            .Attachments.Add objItem, olEmbeddeditem
            .Subject = "SPAM"
            .To = "spam@host.co.uk"
            .Send
        End With
    objItem.Delete
    Next
    
    Set objItem = Nothing
    Set objMsg = Nothing
    
    End Sub
    

    这是使用http://jmerrell.com/2011/05/21/outlook-macros-move-email的信息创建的

    理想情况下,我将它移动到一个名为“已提交”的子文件夹,而不是删除,但我不能让它在公共文件夹中工作

相关问题