Internet - enviando email com os componentes indy

Top  Previous  Next

{What send e-mails with INDY? 

 

I´m going to start a step-by-step description of building a simple 

program for sending e-mails with Indy Components. 

 

This article is the published in my 6th book of Delphi 

(see more details in www.facunte.com.br, sorry Portuguese Language only). 

 

Start a new project and insert TidSMTP, TIdAntiFreeze and TidMessage, from 

the Indy Components. 

 

The routine is implemented 

}

 

-------------- esse eu fiz no Delphi 7 ------------------

INDY:

    IdSMTP   : TIdSMTP;

    MyMessage: TIdMessage;

    AF       : TIdAntiFreeze;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  idSMTP.Username := 'junior';

  idSMTP.Password := '***';

  idSMTP.Host     := '200.247.157.9';

  idSMTP.Port     := 25;

  idSMTP.Connect;

  try

    with MyMessage do

    begin

      Subject                   := 'Assunto';

      From.Text                 := 'DE JUNIOR';

      Recipients.EMailAddresses := 'junior@market.com.br'// from

      ReceiptRecipient.Address  := 'junior@market.com.br;mulajunior@yahoo.com.br'// to

      Body.Text                 := 'Veja o anexo';

      TIdAttachment.Create(MessageParts, 'c:\Graf.bmp');

      idSMTP.Send(MyMessage);

    end;

  finally

    idSMTP.Disconnect;

  end;

end;

 

 

------------------------- exemplo 2 ----------------------

 

procedure TfmeMail.btSendClick(Sender: TObject); 

begin 

  // Config Client 

  idSMTP1.UserId:=edUser.Text; // TEdit 

  idSMTP1.Password:=edPass.Text; // TEdit 

  idSMTP1.Host:=edHost.Text; // TEdit 

  idSMTP1.Port:=StrtoInt(edPort.Text); // edPort = TEdit 

  // Atribui o Conteudo do objeto TextodoEmail 

  // ao objeto PPMensagem 

  // Connect SMTP Server 

  idSMTP1.Connect; 

  try 

    with MyMessage do // Message = TidMessage 

    begin 

      // Config Subject 

      Subject:=edSubject.Text; // edSubject = TEdit 

      // Config 

      From.Text:=edUser_ID.Text; // edUser_ID = TEdit 

      // Config Recipient 

      Recipients.EMailAddresses:='put addresses mail for the recipient'

      ReceiptRecipient.Address:='put a list of recipient addresses'

      // examples 

      // Recipients.EMailAddresses:='davidi@borland.com'; 

      // ReceiptRecipient.Address:='man1@borland.com;man2@borland.com;emerson@facunte.com.br'; 

      

   // Config Message 

      Body.Text:=edMessage.Text; // TMemo 

 

      // Send e-mail 

      idSMTP1.Send(MyMessage); 

    end// with MyMessage 

  finally 

    // Discconect Server 

    idSMTP1.Disconnect; 

  end

end;

 

 

=====================================================================

 

SMTP: TIdSMTP;

Mensagem: TIdMessage;

 

 with Mensagem do

 begin

    MessageParts.Clear;

    Body.Assign(MensagemMemo.Lines); // .............................. Associa a o texto do memo à mensagem

    From.Text                 := DeEdit.Text; // ..................... Quem esta enviando a mensagem

    ReplyTo.EMailAddresses    := DeEdit.Text; // ..................... Guardar uma copia com o remente

    Recipients.EMailAddresses := ClienteCDS.Campo('des_email'); // ... Destinatario

    Subject                   := AssuntoEdit.Text; // ................ Assunto

    if ConfirmaCheck.Checked then

      ReceiptRecipient.Text   := DeEdit.Text // ...................... Retornar e-mail para

    else

      ReceiptRecipient.Text   := '';

 

    ////////////////////////////////////////////////////////////////// Anexar arquivos avulsos

    for i := 0 to Pred(AnexosLista.Count) do

      TIdAttachment.Create(Mensagem.MessageParts, AnexosLista.Items.Strings[i]);

 

    ////////////////////////////////////////////////////////////////// Anexar arquivos key

    if AnexarCheck.Checked then

      TIdAttachment.Create(Mensagem.MessageParts, DirBarra(PastaKeyEdit.Text) + ClienteCDS.Campo('arquivo_key'));

 end;

 

 // Usuario e Senha

 SMTP.Username := UsuarioEdit.Text;

 SMTP.Password := SenhaEdit.Text;

 

 // Servidor

 SMTP.Host := ServidorEdit.Text;

 SMTP.Port := 25;

 

 // Envia

 SMTP.Connect;

 try

   SMTP.Send(Mensagem);

 finally

   SMTP.Disconnect;

 end;