나는 MAPI code by Dave Brooks을 사용하고 있습니다.멀티 스레드 SendEmail 요청을 보내면 일반 Mapi 실패가 발생합니다.
생성 된 Crystal Report를 프로그래밍 방식으로 보내려고합니다.
모든 코드를 스레딩하지 않고 실행하면 정상적으로 실행됩니다. 문제는 스레딩을 사용하여 리턴 오류 "일반 MAPI 실패 [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를 사용하지 않습니다. –
이 코드 라인이 사용자의 기본 전자 메일 클라이언트를 여는가? – Rich