СообЧа > База Знаний > Программирование > Delphi

Вопрос

Версия языка: 6
Как можно программно отправить почту с почтового клиента, установленного по умолчанию?

Т.е.: сформировать конверт, заполнить тему, тело письма и отправить его? Желательно сделать это так, что бы пользователь не смог воспрепятствовать отправке письма или даже не знал о факте его отправки.

Ответ

С Портала для программистов:

КАК ОТПРАВИТЬ ПИСЬМО НА E-MAIL ТАК, ЧТОБЫ ПОЛЬЗОВАТЕЛЬ НЕ ПОДОЗРЕВАЛ ОБ ЭТОМ

{*******************BEGIN**********************}

unit Email;
interface uses Windows, SusUtils, Classes;
function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean; function IsOnline: Boolean; implementation uses Mapi;
function SendEmail(const RecipName, RecipAddress, Subject, Attachment: string): Boolean;
var MapiMessage: TMapiMessage;
MapiFileDesc: TMapiFileDesc;
MapiRecipDesc: TMapiRecipDesc;
i: integer;
s: string;
begin with MapiRecipDesc do begin ulRecerved:= 0;
ulRecipClass:= MAPI_TO;
lpszName:= PChar(RecipName);
lpszAddress:= PChar(RecipAddress);
ulEIDSize:= 0;
lpEntryID:= nil;
end;
with MapiFileDesc do begin ulReserved:= 0;
flFlags:= 0;
nPosition:= 0;
lpszPathName:= PChar(Attachment);
lpszFileName:= nil;
lpFileType:= nil;
end;
with MapiMessage do begin ulReserved := 0; lpszSubject := nil; lpszNoteText := PChar(Subject); lpszMessageType := nil;
lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0; lpOriginator := nil;
nRecipCount := 1;
lpRecips := @MapiRecipDesc;
if length(Attachment) > 0 then begin nFileCount:= 1;
lpFiles := @MapiFileDesc;
end else begin nFileCount:= 0;
lpFiles:= nil;
end;
end;
Result:= MapiSendMail(0, 0, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0) = SUCCESS_SUCCESS;
end;
function IsOnline: Boolean;
var RASConn: TRASConn;
dwSize,dwCount: DWORD;
begin RASConns.dwSize:= SizeOf(TRASConn);
dwSize:= SizeOf(RASConns);
Res:=RASEnumConnectionsA(@RASConns, @dwSize, @dwCount);
Result:= (Res = 0) and (dwCount > 0);
end;
end.


{******************END**********************}

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация