Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit frEmail;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics,
- Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses,
- uniGUIClasses, uniGUIForm, Main, uniGUIBaseClasses, uniImageList, uniButton,
- uniBitBtn, uniPanel, uniLabel, uniDBNavigator, IdTCPConnection, IdTCPClient,
- IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdMessage,
- IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket,
- IdIOHandlerStack, IdSSL, IdSSLOpenSSL, uniMemo, uniEdit, IDText, IdAttachmentFile;
- type
- TfrmEmail = class(TfrmPadrao)
- UniPanel2: TUniPanel;
- UniEdit1: TUniEdit;
- UniEdit2: TUniEdit;
- UniEdit3: TUniEdit;
- UniEdit4: TUniEdit;
- UniEdit5: TUniEdit;
- UniEdit6: TUniEdit;
- UniMemo1: TUniMemo;
- UniLabel1: TUniLabel;
- UniLabel2: TUniLabel;
- UniLabel4: TUniLabel;
- UniLabel5: TUniLabel;
- UniLabel6: TUniLabel;
- UniLabel8: TUniLabel;
- UniBitBtn1: TUniBitBtn;
- IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
- IdMessage1: TIdMessage;
- OpenDialog1: TOpenDialog;
- IdSMTP1: TIdSMTP;
- procedure UniBitBtn1Click(Sender: TObject);
- procedure btnNovoClick(Sender: TObject);
- procedure btnExcluirClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- function frmEmail: TfrmEmail;
- implementation
- {$R *.dfm}
- uses
- MainModule, uniGUIApplication;
- function frmEmail: TfrmEmail;
- begin
- Result := TfrmEmail(UniMainModule.GetFormInstance(TfrmEmail));
- end;
- procedure TfrmEmail.btnExcluirClick(Sender: TObject);
- var
- // variáveis e objetos necessários para o envio
- IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
- IdSMTP: TIdSMTP;
- IdMessage: TIdMessage;
- IdText: TIdText;
- sAnexo: string;
- begin
- // instanciação dos objetos
- IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
- IdSMTP := TIdSMTP.Create(Self);
- IdMessage := TIdMessage.Create(Self);
- try
- // Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
- IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
- IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
- // Configuração do servidor SMTP (TIdSMTP)
- IdSMTP.IOHandler := IdSSLIOHandlerSocket;
- IdSMTP.UseTLS := utUseImplicitTLS;
- IdSMTP.AuthType := satDefault;
- IdSMTP.Port := 465;
- IdSMTP.Host := 'smtp.gmail.com';
- IdSMTP.Username := 'masterlojas2016@gmail.com';
- IdSMTP.Password := 'aco236236';
- // Configuração da mensagem (TIdMessage)
- IdMessage.From.Address := 'masterlojas2016@gmail.com';
- IdMessage.From.Name := UniEdit1.Text;
- IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
- IdMessage.Recipients.Add.Text := UniEdit2.Text;
- if UniEdit3.Text <> EmptyStr then
- IdMessage.Recipients.Add.Text := UniEdit3.Text; // opcional
- if UniEdit4.Text <> EmptyStr then
- IdMessage.Recipients.Add.Text := UniEdit4.Text; // opcional
- IdMessage.Subject := UniEdit5.Text;
- IdMessage.Encoding := meMIME;
- // Configuração do corpo do email (TIdText)
- IdText := TIdText.Create(IdMessage.MessageParts);
- IdText.Body.Add('*** ATENÇÃO! NÃO RESPONDA ESTE E-MAIL! *** ' + #13 + #13 + UniMemo1.Lines.Text);
- IdText.ContentType := 'text/plain; charset=iso-8859-1';
- // Opcional - Anexo da mensagem (TIdAttachmentFile)
- sAnexo := UniEdit6.Text;
- if FileExists(sAnexo) then
- begin
- TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
- end;
- // Conexão e autenticação
- try
- uniPanel1.Caption := 'Anexando/Enviando E-mail...';
- Application.ProcessMessages;
- IdSMTP.Connect;
- IdSMTP.Authenticate;
- except
- on E:Exception do
- begin
- uniPanel1.Caption := 'Erro na conexão ou autenticação! ';
- Exit;
- end;
- end;
- // Envio da mensagem
- try
- IdSMTP.Send(IdMessage);
- uniPanel1.Caption := ' Mensagem enviada com sucesso!';
- btnNovo.SetFocus;
- except
- On E:Exception do
- begin
- uniPanel1.Caption := ' Erro no envio da mensagem!';
- end;
- end;
- finally
- // desconecta do servidor
- IdSMTP.Disconnect;
- // liberação da DLL
- UnLoadOpenSSLLibrary;
- // liberação dos objetos da memória
- FreeAndNil(IdMessage);
- FreeAndNil(IdSSLIOHandlerSocket);
- FreeAndNil(IdSMTP);
- end;
- end;
- procedure TfrmEmail.btnNovoClick(Sender: TObject);
- begin
- //Limpa os campos para um novo email
- UniEdit1.Clear;
- UniEdit2.Clear;
- UniEdit3.Clear;
- UniEdit4.Clear;
- UniEdit5.Clear;
- UniEdit6.Clear;
- UniMemo1.Clear;
- UniEdit1.SetFocus;
- end;
- procedure TfrmEmail.UniBitBtn1Click(Sender: TObject);
- begin
- inherited;
- if OpenDialog1.Execute then
- UniEdit6.Text := (OpenDialog1.FileName);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement