|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Мой клиент @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. |