function SendMail(SmtpServer, ToAddress, FromAddress, Subject, Body: string): boolean;
var
MailSocket: TClientSocket;
MailBuffer: array [0..2048] of char;
begin
Result := False;
MailSocket := TClientSocket.Create;
MailSocket.Connect(SmtpServer, 25);
while MailSocket.Connected do
begin
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '220' then Break;
MailSocket.SendString('HELO ' +{ adres smtp SMTP }+ #13#10);
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '250' then Break;
MailSocket.SendString('MAIL FROM: <' + FromAddress + '>' + #13#10);
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '250' then Break;
MailSocket.SendString('RCPT TO: <' + ToAddress + '>' + #13#10);
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '250' then Break;
MailSocket.SendString('DATA' + #13#10);
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '354' then Break;
MailSocket.SendString('From: ' + FromAddress + #13#10 + 'To: ' + ToAddress + #13#10 + 'Subject: ' + Subject + #13#10#13#10 + Body + #13#10 + '.' + #13#10);
MailSocket.ReceiveBuffer(MailBuffer, 2048);
if not MailSocket.Connected then Break;
if Copy(MailBuffer, 1, 3) <> '250' then Break;
MailSocket.SendString('QUIT' + #13#10);
Result := True;
end;
MailSocket.Disconnect;
MailSocket.Free;
end;
code by Aphex
dorobic autoryzacje i wysylanie zalacznikow to juz naprawde nie jest problem