首页 文章

通过宏发送电子邮件'Rules and Alerts'

提问于
浏览
0

我想通过Outlook 2007中的“规则和警报”发送自定义电子邮件 .

Sub SpirentBoxcarEmail()

Dim objOutlook As Object
Dim objOutlookMsg As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(0)

With objOutlookMsg
    .To = "me@email.com"
    .Subject = "Test"
    .Body = "Test"
    .Send
End With

Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub

我知道我需要在子 Headers 的()中添加类似'item As Outlook.MailItem'的内容,以便宏显示在'Scripts'下

但是,我真的需要为此“项目”分配任何内容吗?

宏运行没有添加'item',但是一旦我添加'item As Outlook.MailItem'并且Rule执行脚本(宏),电子邮件就不会被发送出去 .

3 回答

  • 0

    非常奇怪,对我来说有收到的消息规则 . 您可以在过程中设置断点并查看脚本是否实际执行?

  • 0

    我认为outlook正在寻找特定的功能签名 . 规则期望将当前邮件项目传递给宏 . 试试这个 .

    Sub SpirentBoxcarEmail(ByRef t As MailItem)
    
    Dim objOutlook As Object
    Dim objOutlookMsg As Object
    
    Set objOutlook = CreateObject("Outlook.Application")
    Set objOutlookMsg = objOutlook.CreateItem(0)
    
    With objOutlookMsg
        .To = "me@email.com"
        .Subject = "Test"
        .Body = "Test"
        .Send
    End With
    
    Set objOutlookMsg = Nothing
    Set objOutlook = Nothing
    End Sub
    
  • 0

    您已编写RunAScript代码,就好像它不依赖于正在接收的项目 .

    打开mailitem并运行SpirentBoxcarEmail_RunAScript_Test

    Sub SpirentBoxcarEmail_RunAScript(item As mailitem)
    
    'Dim objOutlook As Object
    'Dim objOutlookMsg As Object
    
    Dim objOutlookMsg As mailitem
    
    ' Normally the trigger item is processed in some way.
    
    MsgBox "The subject of the received mail that triggered the script is: " & _
        vbCr & vbCr & item.Subject
    
    '  In this case the trigger item will now be ignored.
    
    'Set objOutlook = CreateObject("Outlook.Application")
    Set objOutlookMsg = CreateItem(0)
    
    With objOutlookMsg
        .To = "me@email.com"
        .Subject = "Test"
        .body = "Test"
        .Send
    End With
    
    Set objOutlookMsg = Nothing
    'Set objOutlook = Nothing
    End Sub
    
    
    Private Sub SpirentBoxcarEmail_RunAScript_Test()
    
    ' Open mail that fulfills the conditions of the rule
    ' This simulates mail being received
    
    Dim currItem As mailitem
    Set currItem = ActiveInspector.currentItem
    SpirentBoxcarEmail_RunAScript currItem
    
    End Sub
    

相关问题