您好知道如何创建一个将在Outlook 2003中添加规则的VB脚本,这样如果我收到来自用户PersonA@mail.com的电子邮件,它会将该电子邮件转发给PersonB@mail.com。
我还想知道是否可以创建一个VB脚本来删除以前创建的规则。
我做了一些研究,似乎可以创建一个宏来完成这个,但我完全迷失了,因为我不熟悉我需要编辑的对象或有任何类型的API。
也许我必须创建一个宏来添加规则,然后使用VB脚本来激活宏。
答案 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?