![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
mailto
borg © (2003-07-16 08:49:00)
Здраствуйте как с помощью
shellexecute(handle,"open","mailto:borg@memst.kz",nil,nil,sw_normal);
вставить ещё и текст сообщения
Borman (2003-07-21 11:54:00) [1]Проще так:
uses MAPI
//------------------------------------------------------------------------------
Function SendMail(const From, Dest, Subject, Text, FileName: PChar): Integer;
var
Message: TMapiMessage;
Recipient, Sender: TMapiRecipDesc;
File_Attachment: TMapiFileDesc;
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(File_Attachment, SizeOf(File_Attachment), 0);
File_Attachment.nPosition := ULONG(-1);
File_Attachment.lpszPathName := FileName;
FillChar(Result, SizeOf(Result), 0);
with Message do begin
lpszSubject := Subject;
lpszNoteText := Text;
lpOriginator := @Sender;
nRecipCount := 1;
lpRecips := @Recipient;
nFileCount := 1;
lpFiles := @File_Attachment;
end;
end;
var
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, "MAPISendMail");
if @SM <>nil then begin
MakeMessage;
Result := SM(0, 0, Message,MAPI_RECEIPT_REQUESTED {0}, 0);
end else Result := 1;
finally
( MAPIModule)
Проще так:
uses MAPI
//------------------------------------------------------------------------------
Function SendMail(const From, Dest, Subject, Text, FileName: PChar): Integer;
var
Message: TMapiMessage;
Recipient, Sender: TMapiRecipDesc;
File_Attachment: TMapiFileDesc;
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(File_Attachment, SizeOf(File_Attachment), 0);
File_Attachment.nPosition := ULONG(-1);
File_Attachment.lpszPathName := FileName;
FillChar(Result, SizeOf(Result), 0);
with Message do begin
lpszSubject := Subject;
lpszNoteText := Text;
lpOriginator := @Sender;
nRecipCount := 1;
lpRecips := @Recipient;
nFileCount := 1;
lpFiles := @File_Attachment;
end;
end;
var
SM: TFNMapiSendMail;
MAPIModule: HModule;
begin
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule = 0 then
Result := -1
else
try
@SM := GetProcAddress(MAPIModule, "MAPISendMail");
if @SM <>nil then begin
MakeMessage;
Result := SM(0, 0, Message,MAPI_RECEIPT_REQUESTED {0}, 0);
end else Result := 1;
finally
FreeLibrary(MAPIModule);
end;
end;
//------------------------------------------------------------------------------
Gigabyte (2003-07-16 15:24:00) [2]
И кирилицу тоже лучше писать через %.
Vladislav (2003-07-16 09:34:00) [3]
shellexecute(handle,"open","mailto:borg@memst.kz?subject=Test&body=Пишем%20текст%20сообщения%0Aвторая%20строка",nil,nil,sw_normal);
здесь:
%20 код символа "пробел"
%0A перенос строки
правда есть ограничение на длину 255 символов.