VB6 MAPI OUTLOOK

VB6 MAPI OUTLOOK,outlook,vb6,mapi,Outlook,Vb6,Mapi,我有一个VB6应用程序,可以通过Outlook用MAPI发送电子邮件。十多年来,它一直运作良好 现在,在一台机器上,第一封电子邮件将发出,但此后,除非程序重新启动,否则不会发出任何电子邮件 outlook上是否有可能缓存第一个会话的设置?有没有办法在VB6中最终关闭Mapi会话,这样程序就不必重新启动 MAPISess.SignOn MAPIMess.SessionID = MAPISess.SessionID With MAPIMess

我有一个VB6应用程序,可以通过Outlook用MAPI发送电子邮件。十多年来,它一直运作良好

现在,在一台机器上,第一封电子邮件将发出,但此后,除非程序重新启动,否则不会发出任何电子邮件

outlook上是否有可能缓存第一个会话的设置?有没有办法在VB6中最终关闭Mapi会话,这样程序就不必重新启动

       MAPISess.SignOn
       MAPIMess.SessionID = MAPISess.SessionID
       With MAPIMess
               .Compose
               .RecipDisplayName = cmbEmail.Text
               .AddressResolveUI = True
               For i = 0 To flxAttachments.Rows - 1
               .AttachmentIndex = i
               .AttachmentName = flxAttachments.TextMatrix(i, 0) 
'"Invoice.htm"
               .AttachmentPathName = flxAttachments.TextMatrix(i, 1) 
'App.Path & "\Invoice.html"
               .AttachmentType = 0
               Next i
               .ResolveName
               .MsgSubject = txtSubject
               .MsgNoteText = txtBody.Text
               .Send
      End With
      Send_eMail = True
      MAPISess.SignOff

      Exit Function
ErrHandler:
     MsgBox Err.Description
     MAPISess.SignOff
     Send_eMail = False
End Function

你有没有尝试过缩小这个范围?例如,为每封邮件创建一个新的MAPI会话,看看这是否有什么不同?我该怎么做?每次发送邮件时,都会有一个MAPIsess.SignOn,然后是一个MAPIsess.SignOff。这不起作用吗?从您发布的代码来看,它看起来像是在其他地方创建了一个MAPIsess对象,并且可能会被重用。我将尝试在这之前将DaveI放入:MAPIsess.newSession,但它第二次没有发送电子邮件。还有其他语法吗?可能设置MAPISession=true?