2014-04-30 75 views
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 = "[email protected]" 
    .Subject = "Test" 
    .Body = "Test" 
    .Send 
End With 

Set objOutlookMsg = Nothing 
Set objOutlook = Nothing 
End Sub 

我知道我需要补充一些像“项目如Outlook。 MailItem'放入子标题的()中,以便在'脚本'下显示的宏

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

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

回答

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 = "[email protected]" 
    .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 = "[email protected]" 
    .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