Outlook 2003 VB脚本创建转发规则

时间:2012-06-19 17:48:14

标签: outlook outlook-vba outlook-2003

您好知道如何创建一个将在Outlook 2003中添加规则的VB脚本,这样如果我收到来自用户PersonA@mail.com的电子邮件,它会将该电子邮件转发给PersonB@mail.com。

我还想知道是否可以创建一个VB脚本来删除以前创建的规则。

我做了一些研究,似乎可以创建一个宏来完成这个,但我完全迷失了,因为我不熟悉我需要编辑的对象或有任何类型的API。

也许我必须创建一个宏来添加规则,然后使用VB脚本来激活宏。

1 个答案:

答案 0 :(得分:1)

我会直接使用VBA。 ItemAdd Event可用于检查传入邮件的默认收件箱并转发它们。如果您需要更改转发,则可以轻松编辑电子邮件地址。

例如:

Private WithEvents Items As Outlook.Items 
Private Sub Application_Startup() 
Dim olApp As Outlook.Application 
Dim objNS As Outlook.NameSpace 
Set olApp = Outlook.Application 
Set objNS = olApp.GetNamespace("MAPI") 
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 
End Sub
Private Sub Items_ItemAdd(ByVal item As Object) 
On Error Goto ErrorHandler 
Dim Msg As Outlook.MailItem 
Dim newMsg As Outlook.MailItem
Dim recip As Outlook.Recipient

' *****************
' edit these to change forwarding rules
' *****************
Const INCOMING_EMAIL As String = "Persion@mail.com"
Const OUTGOING_EMAIL As String = "PersonB@mail.com"

If TypeName(item) = "MailItem" Then
Set Msg = item
  If Msg.SenderEmailAddress = INCOMING_EMAIL Then
    Set newMsg = Msg.Forward

    With newMsg
      Set recip = .Recipients.Add OUTGOING_EMAIL
      recip.Type = olTo
      .Send
    End With
    ' *****************
    ' perhaps a msgbox?
    ' MsgBox "Message forwarded", vbInformation
    ' *****************
  End If
End If
ProgramExit: 
Exit Sub
ErrorHandler: 
MsgBox Err.Number & " - " & Err.Description 
Resume ProgramExit 
End Sub

此代码应放在ThisOutlookSession模块中,然后必须重新启动Outlook。如果您需要展示位置协助,请参阅Where do I put my Outlook VBA code?