Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 символов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо