改用代码的,在thisoutlooksession里粘贴下面代码 (上面的规则设置是有问题,还是建议在网页上设置转发,这个我用过,没问题) Const s As String = "----此邮件是自动转发,需删除" Private Sub Application_NewMail() hjs End Sub Sub hjs() Dim appolApp As Outlook.Application Dim Myns As NameSpace Dim Item As Outlook.MailItem, Newitem As Outlook.MailItem Dim Item1 As Outlook.MailItem Dim Items, Items1 Set appolApp = Outlook.Application Set Myns = appolApp.GetNamespace("MAPI") Set Items = Myns.GetDefaultFolder(olFolderInbox).Items Set Item = Items(Items.Count) '找出收件箱里的最后一封(刚收到的) Set Newitem = Item.Forward Newitem.To = "hjsong_8116@163.com" Newitem.Subject = Item.Subject & s '在标题加一些特殊的字符 Newitem.Send Set Myns = Nothing Set appolApp = Nothing End Sub Sub Del_forward() '查找标题中含有特殊字符的,删除 Dim appolApp As Outlook.Application Dim Myns As NameSpace Set appolApp = Outlook.Application Set Myns = appolApp.GetNamespace("MAPI") Set Items = Myns.GetDefaultFolder(olFolderSentMail).Items For Each Item In Items If InStr(1, Item.Subject, s) > 0 Then Item.Delete Next Set Myns = Nothing Set appolApp = Nothing End Sub 每次收到新邮件时,转发,然后在转发的邮件标题中增加这样的字符"----此邮件是自动转发,需删除",然后等一段时候后可以运行代码Del_forward,删除邮件。 本来想在收到的同时,转发,删除,但是,转发需要时间,邮件还没有转发出去之前,代码就运行完了,这样就找不到转发的邮件,如果增加等待时间,那这个时间又不确定,假设邮件收到之后,网络出现问题,一直发送不出去,则这样的话删掉代码就没用了。所以,删除的代码需要单独写,如果要自动的话,可以定时运行一下删除邮件的代码,或者把删除代码放在Application_Quit。供参考 |