30.08.2017, 15:51
|
Прохожий
|
|
Регистрация: 30.08.2017
Сообщения: 2
Версия Delphi: Delphi 10 Seatt
Репутация: 10
|
|
Мой клиент @mail на Indy. Нужна помощь
Привет всем)
Кароче, чисто из-за интереса написал простенькую программу. чтобы рассылать письма на почту, используя ssl, smtp, messasge и тд
Программа работает при нажатии на кнопку и отправляет письмо)
Но вот беда: при повторном нажатии, программа "ругается")
Помогите это дело допилить)
Код:
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
FMX.Controls.Presentation, FMX.StdCtrls, IdIOHandler, IdIOHandlerSocket,
IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdMessage, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, IdSMTPBase, IdSMTP, IdCustomTransparentProxy, IdSocks,
IdAttachment, FMX.ScrollBox, FMX.Memo;
type
TForm1 = class(TForm)
IdSMTP1: TIdSMTP;
IdMessage1: TIdMessage;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
Button1: TButton;
IdSocksInfo1: TIdSocksInfo;
Memo1: TMemo;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
CheckBox3: TCheckBox;
CheckBox4: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure CheckBox4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
A,B,C:string;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
idSmtp1.Host:='smtp.mail.ru';
idSmtp1.Port:=25;
idSmtp1.Username:='trymbar';
idSmtp1.Password:='elvakamal';
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;
idSMTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
idSMTP1.UseTLS:=utUseImplicitTLS;
A:=Memo1.Text;
B:=Edit1.Text;
idMessage1.Body.Text:=A;
idMessage1.CharSet:='windows-1251';
idMessage1.From.Text:='trymbar@mail.ru';
idMessage1.Recipients.EMailAddresses:=B;
idMessage1.Subject:='Отсылка с программы';
idSMTP1.Connect();
if idSmtp1.Connected=true then
begin
if checkbox1.IsChecked then
begin
idMessage1.Recipients.EMailAddresses:='gabdelboka@mail.ru';
idSmtp1.Send(idMessage1);
ShowMessage ('Сообщение отправлено gabdelboka@mail.ru');
end;
if checkbox2.IsChecked then
begin
idMessage1.Recipients.EMailAddresses:='iphonelvir@gmail.com';
idSmtp1.Send(idMessage1);
ShowMessage ('Сообщение отправлено iphonelvir@gmail.com');
end;
if checkbox3.IsChecked then
begin
idMessage1.Recipients.EMailAddresses:='bogolyubzaytsevvco@mail.ru';
idSmtp1.Send(idMessage1);
ShowMessage ('Сообщение отправлено bogolyubzaytsevvco@mail.ru');
end;
if checkbox4.IsChecked then
begin
idMessage1.Recipients.EMailAddresses:=B;
idSmtp1.Send(idMessage1);
ShowMessage ('Сообщение отправлено '+B);
end;
end else
ShowMessage ('Не удалось отправить сообщение');
idSmtp1.Disconnect;
idSMTP1.Free;
idMessage1.Free;
//////////////
/////////////
end;
procedure TForm1.CheckBox4Change(Sender: TObject);
begin
edit1.Enabled:=checkbox4.IsChecked;
end;
end.
|