Outlook无法连接至服务器:Outlook2003:使用VBA连接IMAP服务器

有时 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

谢谢你的想法。

0

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对象的默认属性,因此可以按名称标识组。

0

感谢您的思考。我已经通过为每个 IMAP 邮箱创建一个单独的组来进行了一些实验。测试需要很长时间,因为连接只是偶尔中断,我无法手动触发中断。尽管如此,我越来越觉得SyncObject不会导致解决方案。无论如何,谢谢。是否有可能通过 vba 调用菜单项“文件”-“连接到 ”

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(943)
Vb退出程序的代码:如何退出 VB6应用程序并设置退出代码
上一篇
Cut down:cut ()-包括最低值(lowest cut)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(61条)