Sto utilizzando lo MAPI code by Dave Brooks.L'invio di richieste SendEmail multi-thread restituisce l'errore Mapi generale
Sto tentando di inviare un report Crystal generato in modo programmatico.
Quando eseguo il codice senza eseguire il thread, tutto funziona correttamente. Il problema è che quando utilizzo il thread ottengo l'errore di ritorno "Errore generale MAPI [2]".
Non ho mai usato la filettatura e capisco che ci sono pericoli. Qualcuno può fornire una panoramica di questo problema? NOTA: ho rimosso la gestione delle eccezioni per rendere più chiaro il codice.
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 è una API COM quindi è necessario verificare se MAPI supporta anche il multi-threading. Inoltre, devi assolutamente usare MAPI? Se stai semplicemente inviando email, puoi semplicemente usare il supporto SMTP integrato nel framework .NET trovato in System.Net.Mail? Quindi almeno non stai utilizzando una API COM. –
Questa riga di codici apre il client di posta elettronica predefinito dell'utente? – Rich