Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure TForm1.Button1Click(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 := StrToInt(EdPorta.Text);
- IdSMTP.Host := EdHOST.Text; //'smtp.office365.com';
- IdSMTP.Username := EdUsername.Text; //'usuario@gmail.com';
- IdSMTP.Password := EdPassword.Text;// 'senha';
- IdSMTP.UseTLS := utUseRequireTLS;
- // Configuração da mensagem (TIdMessage)
- IdMessage.From.Address := edremetente.Text; //'remetente@gmail.com';
- IdMessage.From.Name := 'CISBRA';
- IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
- IdMessage.Recipients.EMailAddresses := edtPara.Text;
- IdMessage.Subject := 'Assunto do e-mail';
- IdMessage.Encoding := meMIME;
- // Configuração do corpo do email (TIdText)
- IdText := TIdText.Create(IdMessage.MessageParts);
- IdText.Body.Add('Corpo do e-mail');
- IdText.ContentType := 'text/plain; charset=iso-8859-1';
- // Opcional - Anexo da mensagem (TIdAttachmentFile)
- sAnexo := 'C:\Anexo.pdf';
- if FileExists(sAnexo) then
- begin
- TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
- end;
- // Conexão e autenticação
- try
- IdSMTP.Connect;
- IdSMTP.Authenticate;
- except
- on E:Exception do
- begin
- MessageDlg('Erro na conexão ou autenticação: ' +
- E.Message, mtWarning, [mbOK], 0);
- MsgRetorno.Caption:= 'Erro na conexão ou autenticação: ' + E.Message;
- Exit;
- end;
- end;
- // Envio da mensagem
- try
- IdSMTP.Send(IdMessage);
- MessageDlg('Mensagem enviada com sucesso!', mtInformation, [mbOK], 0);
- except
- On E:Exception do
- begin
- MessageDlg('Erro ao enviar a mensagem: ' +
- E.Message, mtWarning, [mbOK], 0);
- 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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement