有时 Outlook(2003)会失去与一个或多个 IMAP 服务器的连接。例如,使用应该将邮件移动到这些邮箱的 VBA 脚本,我收到以下错误消息:
运行时错误“-972759285 (c604df0b)”:与服务器的连接不可用。Outlook 必须联机或连接才能完成此操作。
然后,我首先要点击“文件”-“连接到 [MAILBOX...]”手动建立此连接。我正在寻找一个 VBA 解决方案来自动连接到多个邮箱(仅 IMAP),但我不知道在 VBA 参考中寻找什么。
我试过这个:
Sub MyTest()
Dim myNameSpace As Outlook.NameSpace
Set myNameSpace = Application.GetNamespace("MAPI")
Set Application.ActiveExplorer.CurrentFolder = myNameSpace.Folders("C-Interessenten").Folders("Interessenten")
Set myNameSpace = Nothing
End Sub
或这个
Sub IsOLOffline()
'Determines whether Outlook is currently offline.
Dim myOlApp As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Set myOlApp = New Outlook.Application
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Debug.Print myNameSpace.Offline
End Sub
谢谢你的想法。
Outlook 对象模型不提供任何开箱即用的东西。
Namespace
类的Offline
属性仅返回 Exchange 配置文件的有效信息。它不适用于非 Exchange 帐户类型,如 POP3 、 IMAPI 和 HTTP。
您可以尝试使用Namespace
类的SyncObjects属性。它返回一组SyncObject
对象,表示用户的Send/Receive groups
。
当 Microsoft Outlook 在使用指定的 Send\ Receive 组同步用户的文件夹时遇到错误时,会触发OnError事件。因此,它可以帮助检测此类情况,然后启动新的同步。
Public WithEvents mySync As Outlook.SyncObject
Sub Initialize_handler()
Set mySync = Application.Session.SyncObjects.Item(1)
mySync.Start
mySync.Stop
End Sub
Private Sub mySync_OnError(ByVal Code As Long, ByVal Description As String)
MsgBox "Unexpected sync error" & Code & ": " & Description
End Sub
Send\ Receive 组允许用户配置不同的同步方案,选择应用哪些文件夹和筛选器。
使用Item
方法从SyncObjects
对象中检索SyncObject
对象。由于Name
属性是SyncObject
对象的默认属性,因此可以按名称标识组。
感谢您的思考。我已经通过为每个 IMAP 邮箱创建一个单独的组来进行了一些实验。测试需要很长时间,因为连接只是偶尔中断,我无法手动触发中断。尽管如此,我越来越觉得SyncObject
不会导致解决方案。无论如何,谢谢。是否有可能通过 vba 调用菜单项“文件”-“连接到 ”
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(61条)