很多时候我们需要将公司的outlook邮件自动转发到gmail或者其他邮箱中便于随时查看。但是很多公司鉴于安全考虑,在服务器端中禁止了自动转发。那么通过在outlook中设置规则将无法起效。

解决办法是写一段VBA,在本地通过自动运行脚本实现转发。这样做唯一的害处是Outlook需要一直被打开。(是的,没有错,你的电脑需要24小时开机。一旦关闭outlook,转发功能也将停止)

我想这样迫切而又简单的功能,网上一定有一大堆牛人做过。可是是在网上找了很久,确实发现不少。但是他们都只交代了半截:留了段代码,然后,然后就什么都没说了。别人追问,也没回答(苦了我们这帮菜鸟~~~~)。后来还是在一老外网站找到了完整解决方案。先将方案公布如下。E文好请直接看:

http://superuser.com/questions/19159/auto-forward-mails-to-gmail-from-outlook

为了方便大家,现将原文大致添油加醋翻译如下:

操作步骤:

1. 在outlook中,按住alt-F11(或者菜单中: 工具->宏->Visual Basic编辑器)打开VBA编辑器,将下面代码复制进去:注意将email@email.com替换为真实email地址,然后关闭VBA编辑界面。

Sub AutoForwardAllSentItems(Item As Outlook.MailItem)
Dim strMsg As String
Dim myFwd As Outlook.MailItem

Set myFwd = Item.Forward

myFwd.Recipients.Add "email@email.com"
myFwd.Send
Set myFwd = Nothing
End Sub

用VBA实现Ooutlook收到邮件后自动转发外部邮箱_自动转发邮件

2. 在Rules and Alerts中添加规则,运行上述脚本。具体步骤如下:Tools -> Rules and Alerts -> New Rule -> Check Messages when they arrive -> Next -> YES -> Checkbox "Run a Script" ->按照步骤点击确定,可以参考下面图片。(注意run script中点选刚刚创建的脚本AutoForwardAllSentItems)


用VBA实现Ooutlook收到邮件后自动转发外部邮箱_宏脚本_02


最后应该就可以正常工作了,我在outlook 2007中测试没有问题。