Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 通过'中的宏发送电子邮件;规则和警报';_Vba_Outlook_Rules - Fatal编程技术网

Vba 通过'中的宏发送电子邮件;规则和警报';

Vba 通过'中的宏发送电子邮件;规则和警报';,vba,outlook,rules,Vba,Outlook,Rules,我想通过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@ema

我想通过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
我知道我需要在子标题()中添加类似“item As Outlook.MailItem”的内容,以便宏显示在“Scripts”下

然而,我真的需要为这个“项目”分配什么吗


宏在没有添加“item”的情况下运行正常,但一旦我添加了“item As Outlook.MailItem”并且规则执行了脚本(宏),电子邮件就不会被发送出去。

非常奇怪,对于我来说,接收到的消息规则是有效的。能否在过程中设置断点并查看脚本是否正在实际执行?

我认为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

您编写了RunAScript代码,就好像它不依赖于接收的项目一样

打开邮件项并运行SpirentBoxcarEmail\u RunAScript\u测试

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