Advertisement
Guest User

Untitled

a guest
Feb 13th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. // variáveis e objetos necessários para o envio
  4. IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
  5. IdSMTP: TIdSMTP;
  6. IdMessage: TIdMessage;
  7. IdText: TIdText;
  8. sAnexo: string;
  9. begin
  10. // instanciação dos objetos
  11. IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
  12. IdSMTP := TIdSMTP.Create(Self);
  13. IdMessage := TIdMessage.Create(Self);
  14.  
  15. try
  16. // Configuração do protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
  17. IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
  18. IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
  19.  
  20. // Configuração do servidor SMTP (TIdSMTP)
  21. IdSMTP.IOHandler := IdSSLIOHandlerSocket;
  22. IdSMTP.UseTLS := utUseImplicitTLS;
  23. IdSMTP.AuthType := satDefault;
  24. IdSMTP.Port := StrToInt(EdPorta.Text);
  25. IdSMTP.Host := EdHOST.Text; //'smtp.office365.com';
  26. IdSMTP.Username := EdUsername.Text; //'usuario@gmail.com';
  27. IdSMTP.Password := EdPassword.Text;// 'senha';
  28. IdSMTP.UseTLS := utUseRequireTLS;
  29.  
  30. // Configuração da mensagem (TIdMessage)
  31. IdMessage.From.Address := edremetente.Text; //'remetente@gmail.com';
  32. IdMessage.From.Name := 'CISBRA';
  33. IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
  34. IdMessage.Recipients.EMailAddresses := edtPara.Text;
  35. IdMessage.Subject := 'Assunto do e-mail';
  36. IdMessage.Encoding := meMIME;
  37.  
  38. // Configuração do corpo do email (TIdText)
  39. IdText := TIdText.Create(IdMessage.MessageParts);
  40. IdText.Body.Add('Corpo do e-mail');
  41. IdText.ContentType := 'text/plain; charset=iso-8859-1';
  42.  
  43. // Opcional - Anexo da mensagem (TIdAttachmentFile)
  44. sAnexo := 'C:\Anexo.pdf';
  45. if FileExists(sAnexo) then
  46. begin
  47. TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
  48. end;
  49.  
  50. // Conexão e autenticação
  51. try
  52. IdSMTP.Connect;
  53. IdSMTP.Authenticate;
  54. except
  55. on E:Exception do
  56. begin
  57. MessageDlg('Erro na conexão ou autenticação: ' +
  58. E.Message, mtWarning, [mbOK], 0);
  59. MsgRetorno.Caption:= 'Erro na conexão ou autenticação: ' + E.Message;
  60. Exit;
  61. end;
  62. end;
  63.  
  64. // Envio da mensagem
  65. try
  66. IdSMTP.Send(IdMessage);
  67. MessageDlg('Mensagem enviada com sucesso!', mtInformation, [mbOK], 0);
  68. except
  69. On E:Exception do
  70. begin
  71. MessageDlg('Erro ao enviar a mensagem: ' +
  72. E.Message, mtWarning, [mbOK], 0);
  73. end;
  74. end;
  75. finally
  76. // desconecta do servidor
  77. IdSMTP.Disconnect;
  78. // liberação da DLL
  79. UnLoadOpenSSLLibrary;
  80. // liberação dos objetos da memória
  81. FreeAndNil(IdMessage);
  82. FreeAndNil(IdSSLIOHandlerSocket);
  83. FreeAndNil(IdSMTP);
  84. end;
  85. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement