Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизПочему MAPI_DIALOG не срабатывает с OutLook? Найти похожие ветки
← →
Aleksandr. (2005-11-10 18:36) [0]Функция, юзающая mapi для отправки почты:
function SendMail(aHandle : HWND; const aFrom, aDest, aSubject, aText : string; ShowMailer: boolean):Integer;
var
From, Dest, Subject, Text : PChar;
Message : TMapiMessage;
Recipient, Sender : TMapiRecipDesc;
function MakeMessage : TMapiMessage;
begin
FillChar(Sender, SizeOf(Sender), 0);
Sender.ulRecipClass := MAPI_ORIG;
Sender.lpszAddress := From;
FillChar(Recipient, SizeOf(Recipient), 0);
Recipient.ulRecipClass := MAPI_TO;
Recipient.lpszAddress := Dest;
FillChar(Result, SizeOf(Result), 0);
with Message do begin
lpszSubject := Subject;
lpszNoteText := Text;
lpOriginator := @Sender;
nRecipCount := 1;
lpRecips := @Recipient;
nFileCount := 0;
lpFiles := nil;
end;
end;
var
SM : TFNMapiSendMail;
MAPIModule : HModule;
MAPI_FLAG : Cardinal;
begin
Result:=-1;
if (NOT InternetActive) AND NOT AutoDial(aHandle) then
Exit;
if ShowMailer then
MAPI_FLAG:=MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION
else
MAPI_FLAG:=0;
MAPIModule:=LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result:=-1
else try
@SM := GetProcAddress(MAPIModule, "MAPISendMail");
From:=PChar(aFrom);
Dest:=PChar(aDest);
Subject:=PChar(aSubject);
Text:=PChar(aText);
if @SM <> nil then begin
MakeMessage;
Result:=SM(0,aHandle, Message, MAPI_FLAG, 0);
end
else
Result:=1
finally
FreeLibrary(MAPIModule)
end;
end;
Прошу обратить внимание на участок
if ShowMailer then
MAPI_FLAG:=MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION
else
MAPI_FLAG:=0;
На компе с TheBat (если он настроен на перехват mapi) или Outlook Express, все нормально - при ShowMailer=true появляется окно редактирования сообщения. А вот на компе с MS OutLook ничего не появляется - сообщения молча уходят в OutLook. Как это можно залечить?
← →
Aleksandr. (2005-11-11 14:55) [1]И, кстати, у этой функции с OutLook Express проблемы, если флаг MAPI_DIALOG установлен. Появляется окно редактирования сообщения, при этом доступен ввод символов в адрес получателя, но больше в этом окне ничего сделать нельзя, в т.ч. и закрыть его.
← →
instance (2005-12-22 14:52) [2]
> И, кстати, у этой функции с OutLook Express проблемы, если
> флаг MAPI_DIALOG установлен. Появляется окно редактирования
> сообщения, при этом доступен ввод символов в адрес получателя,
> но больше в этом окне ничего сделать нельзя, в т.ч. и закрыть
> его.
SendMail(Application.Handle, ...
И тогда ничего не виснет.
Вот интересно было бы узнать, какими такими свойствами должно обладать передаваемое окно, чтоб это все не висло? Ну, если, скажем, программа без VCL...
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.048 c