Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SendMailMAPI error -1

64 views
Skip to first unread message

Jacek

unread,
Mar 14, 2011, 9:33:39 AM3/14/11
to
Witam.

Prz wysylaniu maili korzystam z kodu ponizej:

MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, 'MAPISendMail');
if @SM <> nil then
begin
Result := SM(0, Application.Handle, Message, MAPI_DIALOG or
MAPI_LOGON_UI, 0);
end
else
Result := 1;
finally
FreeLibrary(MAPIModule);
end;

Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na innym
-2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
moze mi powiedziec co jest przyczyna tych bledow?

Pozdrawiam,
Jacek F.

darekm

unread,
Mar 14, 2011, 11:36:49 AM3/14/11
to
W dniu 2011-03-14 14:33, Jacek pisze:


Może nie masz poprawnie ustawionego domyślnego klienta poczty
porównaj zapisy w rejestrze:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\

--
Darek

m

unread,
Mar 14, 2011, 1:06:18 PM3/14/11
to
W dniu 2011-03-14 16:36, darekm pisze:
Ja bym też w to celował

Start -> "Określ dostęp do programów i ich ustawienia domyślne"
I tam postawiał

U osób które mają problemy z Optimą zawsze to pomaga :D

M

Jacek

unread,
Mar 15, 2011, 5:14:49 AM3/15/11
to
W dniu 2011-03-14 16:36, darekm pisze:
> W dniu 2011-03-14 14:33, Jacek pisze:
>> Witam.
>>
>> Prz wysylaniu maili korzystam z kodu ponizej:
>>

>>


>> Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na innym
>> -2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
>> moze mi powiedziec co jest przyczyna tych bledow?
>
>
> Może nie masz poprawnie ustawionego domyślnego klienta poczty
> porównaj zapisy w rejestrze:
> HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\
>

Tez o tym myslalem, ale klient poczty z przegladarki internetowej
(mailto:....) uruchamia sie poprawnie.

Jacek

m

unread,
Mar 15, 2011, 5:17:27 AM3/15/11
to
>>
> Tez o tym myslalem, ale klient poczty z przegladarki internetowej
> (mailto:....) uruchamia sie poprawnie.
>
> Jacek
A sposób z

Start -> "Określ dostęp do programów i ich ustawienia domyślne"
Testowałeś ?

Arivald

unread,
Mar 15, 2011, 6:51:07 AM3/15/11
to
W dniu 2011-03-14 14:33, Jacek pisze:
> Witam.
>
> Prz wysylaniu maili korzystam z kodu ponizej:
>
> MAPIModule := LoadLibrary(PChar(MAPIDLL));
> if MAPIModule = 0 then
> Result := -1
> else
> try
> @SM := GetProcAddress(MAPIModule, 'MAPISendMail');
> if @SM <> nil then
> begin
> Result := SM(0, Application.Handle, Message, MAPI_DIALOG or
> MAPI_LOGON_UI, 0);
> end
> else

> Result := 1;

To jest mylące. MAPISendMail może zwrócić MAPI_E_USER_ABORT o wartości
1, i nie będziesz w stanie odróżnić swojej jedynki od tej z
MAPISendMail. Tym bardziej że przy nie załadowaniu MAPI.dll zwracasz -1.

> finally
> FreeLibrary(MAPIModule);
> end;
>
> Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na innym

wg. dokumnetacji, MAPISendMail nie zwraca -1, czyli to problem z
załadowaniem MAPI.DLL (twoje -1 z kodu)

> -2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
> moze mi powiedziec co jest przyczyna tych bledow?
>
> Pozdrawiam,
> Jacek F.

Podstawowy problem jest taki, że MAPI.DLL zależy od aktualnego
"domyslnego" klienta poczty. Czyli funkcje z MAPI.DLL mogą działać róznie.
Kiedyś każdy klient poczty dodawał swoją MAPI.DLL bezpośrednio do
katalogów windows. Od Visty bodajże MAPI.DLL w katalogach windows jest
jedno, i ono przesyła wywołania do MAPI.DLL aktualnej domyślnej
aplikacji pocztowej.
To że Microsoft pisze na swoich stronach że MAPI to interfejs do
outlooka i exchange to gówno warty marketing.


kod błędu -2147467259 to inaczej FFFFFFFF80004005, z czego istotne jest
80004005 => non-specific error, w wolnym tłumaczeniu "coś się popsuło" ;-).
W kontekście MAPI może on oznaczać "MAPI Initialize error", co może
wskazywać na brak lub nieprawidłową konfigurację domyślnego klienta poczty.


--
Arivald

Arivald

unread,
Mar 15, 2011, 6:52:23 AM3/15/11
to
W dniu 2011-03-15 10:14, Jacek pisze:

Tyle ze to jest obsługiwane jako rozszerzenie shella, a nie przez MAPI...

--
Arivald

darekm

unread,
Mar 15, 2011, 7:04:41 AM3/15/11
to
W dniu 2011-03-15 10:14, Jacek pisze:

To nie ma znaczenia.
Dla simplemapi klucze muszą być dokładnie ustawione (ustawiona wartość
domyślna w/w klucza)
SimpleMaipi z JEDI wykonuje bardziej zaawansowane sprawdzenia rejestru,
ale nie sprawdzałem jeszcze czy jest bardziej odporne na różne
ustawienia stacji klienckich

[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail]
@="Mozilla Thunderbird"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\Mozilla Thunderbird]
@="Mozilla Thunderbird"
"DLLPath"="S:\\ThunderBird\\App\\thunderbird\\mozMapi32_InUse.dll"


--
Darek

Mariusz

unread,
Mar 16, 2011, 7:17:40 AM3/16/11
to
Użytkownik "Jacek" <zenek33...@poczta.onet.pl> napisał w wiadomości
news:ill458$vht$1...@news.onet.pl...
> Witam.
>
[..]

> Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na
> innym -2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
> moze mi powiedziec co jest przyczyna tych bledow?
>
> Pozdrawiam,
> Jacek F.

A jaki OS? bo na Win7 chyba zmieniono mapi i nie jest tak lekko.

Pozdrawiam
Mariusz


Jacek

unread,
Mar 16, 2011, 9:01:47 AM3/16/11
to
W dniu 2011-03-16 12:17, Mariusz pisze:
> U�ytkownik "Jacek"<zenek33...@poczta.onet.pl> napisa� w wiadomo�ci

> news:ill458$vht$1...@news.onet.pl...
>> Witam.
>>
> [..]
>> Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na
>> innym -2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
>> moze mi powiedziec co jest przyczyna tych bledow?
>>
>> Pozdrawiam,
>> Jacek F.
>
> A jaki OS? bo na Win7 chyba zmieniono mapi i nie jest tak lekko.
>
> Pozdrawiam
> Mariusz
>
>
Windows XP

niusy.pl

unread,
Mar 19, 2011, 1:19:26 PM3/19/11
to

Użytkownik "Jacek" <zenek33...@poczta.onet.pl>

>>> Prz wysylaniu maili korzystam z kodu ponizej:
>>>
>
>>>
>>> Wywolanie tego kodu na jednym z komputerow zwraca wynik -1 a na innym
>>> -2147467259. Na pozostalych komputerach wszystko dziala ok. Czy ktos
>>> moze mi powiedziec co jest przyczyna tych bledow?
>>
>>
>> Może nie masz poprawnie ustawionego domyślnego klienta poczty
>> porównaj zapisy w rejestrze:
>> HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\
>>
> Tez o tym myslalem, ale klient poczty z przegladarki internetowej
> (mailto:....) uruchamia sie poprawnie.

A to ma jakiś związek z MAPI ???

0 new messages