Урок на Делфи 65. Отправка почты по smtp протоколу


задание на delphi. Отправка почты по протоколу smtp.

unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, IdIMAP4, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
IdSSL, IdSSLOpenSSL, IdSMTPBase, IdSMTP,idmessage;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Memo1: TMemo;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
ListBox1: TListBox;
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
msg:TIdMessage;
begin
IdSMTP1.Host:='smtp.yandex.ru';
IdSMTP1.Port:=587;
IdSMTP1.UserName:=Edit1.Text;
IdSMTP1.Password:=Edit2.Text;
IdSMTP1.AuthType := satDefault;
IdSMTP1.ConnectTimeout:=10000;
IdSMTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
IdSMTP1.UseTLS:=utUseExplicitTLS;
IdSSLIOHandlerSocketOpenSSL1.Destination := IdSMTP1.Host+':'+IntToStr(IdSMTP1.Port);
IdSSLIOHandlerSocketOpenSSL1.Host := IdSMTP1.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := IdSMTP1.Port;
IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
ListBox1.Items.Add(' ');
IdSMTP1.Connect;
if IdSMTP1.Connected then
begin
ListBox1.Items.Add('');
idmessage1.IsEncoded:=true;
idmessage1.ContentType := 'text/plain; charset=UTF-8';
IdMessage1.Body.Text:=Memo1.Lines.Text;
IdMessage1.Subject:='';
IdMessage1.From.Text:=Edit1.Text;
IdMessage1.Recipients.EMailAddresses:='ruslan@sustec.ru';
IdSMTP1.Send(IdMessage1);
end;
end;
end.



Скачать