我正在使用MAPI code by Dave Brooks。發送多線程SendEmail請求返回通用Mapi失敗
我正在嘗試編程發送一個生成的Crystal報表。
當我運行代碼而沒有線程時,一切運行正常。問題是當我使用線程時,我得到了返回錯誤「General MAPI failure [2]」。
我從來沒有使用過線程,並明白有涉及危險。任何人都可以提供這個問題的任何見解?注:我已經刪除了異常處理,以使代碼更清晰。
Private Sub RunReport()
SetParameters()
SaveReportFile()
Dim operation As New ThreadStart(AddressOf SendEmail)
Dim theThread As New Thread(operation)
theThread.Start()
End Sub
Public Sub SendEmail()
Dim m As MAPI
m = New MAPI()
Dim email As String
For Each email In emailAddress
m.AddRecipientBCC(email)
Next email
m.AddAttachment(@"c:\temp\report.pdf")
m.SendMailPopup("Requested Report", "")
End Sub
MAPI是一個COM API,因此您將檢查MAPI是否支持多線程。另外,你絕對必須使用MAPI嗎?如果您只是簡單地發送電子郵件,您可以使用System.Net.Mail中.NET框架內置的SMTP支持嗎?那麼至少你沒有使用COM API。 – 2009-04-24 00:13:24
這行代碼是否打開用戶的默認電子郵件客戶端? – Rich 2017-07-20 06:05:46