Notre application utilise Simple MAPI pour envoyer des e-mails. Un de nos clients a des problèmes pour envoyer des e-mails à partir d'une session sur son serveur Terminal Server.Erreur lors du chargement dynamique mapi32.dll
Le mapi32.dll est chargé avec un appel à LoadLibrary qui réussit, mais notre application tente d'obtenir les adresses des fonctions MAPILogon
, MAPILogOff
, MAPISendMail
, MAPIFreeBuffer
et MAPIResolveName
. Le problème est que GetProcAddress
échoue pour les fonctions avec un ERROR_ACCESS_DENIED
(code: 5) à l'exception de MAPIFreeBuffer
. Cela ressemble à une sorte de sécurité.
Comment puis-je résoudre ce problème ou devrais-je utiliser une autre méthode pour envoyer du courrier?
FWI, voici quelques informations supplémentaires sur OS et le contenu de la clé de registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows Messaging Subsystem:
OS info: 5.2.3790 VER_PLATFORM_WIN32_NT Service Pack 2
Contents of SOFTWARE\Microsoft\Windows Messaging Subsystem
InstallCmd: rundll32 setupapi,InstallHinfSection MSMAIL 132 msmail.inf
MAPI: 1
CMCDLLNAME: mapi.dll
CMCDLLNAME32: mapi32.dll
CMC: 1
MAPIX: 1
MAPIXVER: 1.0.0.1
OLEMessaging: 1
Contents of SOFTWARE\Microsoft\Windows Messaging Subsystem\MSMapiApps
inetsw95.exe:
choosusr.dll:
msab32.dll:
nwab32.dll:
outstore.dll: Microsoft Outlook
CDOEXM.DLL:
EMSMDB32.DLL:
EMSABP32.DLL:
newprof.exe: Microsoft Outlook
outlook.exe:
wfxmsrvr.exe: Microsoft Outlook
msexcimc.exe:
exchng32.exe:
schdmapi.dll: Microsoft Outlook
pilotcfg.exe: Microsoft Outlook
mailmig.exe: Microsoft Outlook
admin.exe:
msspc32.dll: Microsoft Outlook
cnfnot32.exe: Microsoft Outlook
ilpilot.exe: Microsoft Outlook
events.exe:
Je suis sur Delphi 7.0, mais cela ne devrait pas d'importance.
Modifier, ajouté des informations de version:
Fileversion information de C: \ WINDOWS \ system32 \ mapi32.dll
Fileversion: 6.5.7226.0
FileDescription=Extended MAPI 1.0 for Windows NT
CompanyName=Microsoft Corporation
InternalName=MAPI32
Comments=Service Pack 1
LegalCopyRight=Copyright (C) 1986-2003 Microsoft Corp. All rights reserved.
LegalTradeMarks=Microsoft(R) and Windows(R) are registered trademarks of Microsoft Corporation.
OriginalFileName=MAPI32.DLL
ProductName=Microsoft Exchange
ProductVersion=6.5
Fileversion information de C: \ Program Files \ Common Files \ SYSTEM \ MSMAPI \ 1043 \ msmapi32.dll
Fileversion: 11.0.5601.0
FileDescription=Extended MAPI 1.0 for Windows NT
CompanyName=Microsoft Corporation
InternalName=MAPI32.DLL
LegalCopyRight=Copyright © 1995-2003 Microsoft Corporation. All rights reserved.
OriginalFileName=MAPI32.DLL
ProductName=MAPI32
ProductVersion=11.0.5601
J'ai ajouté les informations de version demandées. Je dois dire que la version de mapi32.dll est suspectée. Cela ne devrait-il pas être un bout avec la version 1, comme sur Windows XP? Peut-être que je dois demander à mon client pour exécuter fixmapi.exe. –