vb.net – 发送多线程SendEmail请求返回General Mapi Failure
发布时间:2020-12-17 07:27:41 所属栏目:百科 来源:网络整理
导读:我正在使用 MAPI code by Dave Brooks. 我试图以编程方式发送生成的Crystal报表. 当我在没有线程的情况下运行代码时,一切运行正常.问题是当我使用线程时,我得到返回错误“General MAPI failure [2]”. 我之前从未使用过线程,并且理解存在危险.任何人都可以对
我正在使用
MAPI code by Dave Brooks.
我试图以编程方式发送生成的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:tempreport.pdf") m.SendMailPopup("Requested Report","") End Sub 解决方法
一个非常晚的答案,但我想我还是会添加它,因为我刚刚遇到这个并且在其他地方找不到答案.
在使用以下命令启动之前,您需要将线程的公寓状态设置为STA: theThread.SetApartmentState(ApartmentState.STA); 请注意,来自线程池的线程(例如,由BackgroundWorker组件使用)是MTA. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |