У меня есть 32-битное приложение VB6, которое использует Outlook Redemption для отправки электронной почты. Эта программа работала хорошо до Outlook 2016, но некоторые из моих клиентов теряют возможность отправлять электронную почту через мою программу, когда они либо обновляются до 2019, либо автоматически обновляются по подписке на Office 365.
A упрощенная версия моего кода:
Private Sub cmdSendMessage_Click()
Dim objSession As RDOSession
Dim objOutbox As RDOFolder
Dim objMessage As RDOMail
Dim objRecipient As RDORecipient
Dim strBody As String
100 On Error GoTo ErrorHandler
101 Set objSession = New RDOSession
102 objSession.Logon , , False, False
103 Set objOutbox = objSession.GetDefaultFolder(olFolderOutbox)
104 Set objMessage = objOutbox.Items.Add
105 Set objRecipient = objMessage.Recipients.Add(txtAddressTo.Text)
106 objRecipient.Resolve
107 strBody = "This is a test message--sent using Outlook Redemption." & vbNewLine & vbNewLine & _
"Sent: " & Now & vbNewLine & _
"Sent from Computer: " & GetThisComputerName
109 With objMessage
110 .Subject = "Test Message - Outlook Redemption"
111 .Body = strBody
112 .Send
113 End With 'objMessage
114 objSession.Logoff
115 MsgBox "Message sent.", vbOKOnly + vbInformation
ExitRoutine:
201 Set objRecipient = Nothing
202 Set objMessage = Nothing
203 Set objOutbox = Nothing
204 Set objSession = Nothing
210 Exit Sub
ErrorHandler:
MsgBox "Error " & Err.Number & vbNewLine & vbNewLine & Err.Description & vbNewLine & vbNewLine & _
"Line " & Erl, vbOKOnly + vbCritical, "Error in Execution"
Resume ExitRoutine
End Sub
Я пробовал программу с кодом выше на компьютере клиента под управлением Outlook 2019 MSO (16.0.12527.20260) 32-разрядный с Windows 10, 1909 (18363.535) 64-разрядные и 32-разрядные Outlook Redemption 5.18 . Программа немедленно завершает работу без сообщения об ошибке, когда я нажимаю кнопку для отправки этого электронного письма.
Работает ли Outlook Redemption вообще с VB6 и более новыми версиями Outlook? Если да, что мне нужно изменить в моем приложении, чтобы оно работало?
В журнале событий приложений появились две ошибки:
Faulting application name: RedemptionMail.exe, version: 1.0.0.0, time stamp: 0x5b995b5e
Faulting module name: RPCRT4.dll, version: 10.0.18362.476, time stamp: 0x7acb686b
Exception code: 0xc0000005
Fault offset: 0x000461c6
Faulting process id: 0x1660
Faulting application start time: 0x01d60931c9abef20
Faulting application path: \\???\RedemptionMail.exe
Faulting module path: C:\WINDOWS\System32\RPCRT4.dll
Report Id: 916c7e74-a3dd-440c-8759-23806d654b9d
Faulting package full name:
Faulting package-relative application ID:
и
Fault bucket 1285058706613227027, type 1
Event Name: APPCRASH
Response: Not available
Cab Id: 0
Problem signature:
P1: RedemptionMail.exe
P2: 1.0.0.0
P3: 5b995b5e
P4: RPCRT4.dll
P5: 10.0.18362.476
P6: 7acb686b
P7: c0000005
P8: 000461c6
P9:
P10:
Attached files:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERDE85.tmp.mdmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERDEE4.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERDEF4.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERDF04.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERDF24.tmp.txt
These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_RedemptionMail.e_684bbff35d28781a9319f7f96316e4566e7d38f_ae0321e2_6f232be0-f6dd-46d3-bdbf-4f81e08f6760
Analysis symbol:
Rechecking for solution: 0
Report Id: 916c7e74-a3dd-440c-8759-23806d654b9d
Report Status: 268435456
Hashed bucket: ca938f3d4eba0c8bd1d57215cb344e13
Cab Guid: 0