Veremos nesse artigo como criar uma aplicação que envia e-mails. É claro que serve muito mais como aprendizagem do que um programa para se ganhar dinheiro, tendo em vista que já temos vários programas, até já inclusos com o sistema operacional, como o Outlook, Eudora, entre outros.
Vamos ao trabalho então:
1. Crie um novo projeto no Delphi;
2. Dê uma interface amigável ao seu projeto, algo como a figura abaixo:
3. Insira no formulário um componente OpenDialog, na palheta Dialog;
4. Um componente IdMessage na palheta Indy Misc e configure as propriedades From|Adress, com o e-mail do remetente e From|Name com o nome do remetente;
5. Um componente IdSMTP na palheta Indy Clients e configura as propriedades Host com o endereço IP ou o DNS do seu servidor de email, por exemplo: smtp.uol.com.br, e as propriedades Password e Username, para se autenticar no servidor, caso necessário;
6. No botão anexar digite o seguinte código:
7. No botão enviar digite o seguinte código:
Pronto agora é só testar! Esse é um dos exemplos usando os componentes Indy que veremos em nossa coluna.
Vejam abaixo o código completo.
Vamos ao trabalho então:
1. Crie um novo projeto no Delphi;
2. Dê uma interface amigável ao seu projeto, algo como a figura abaixo:
3. Insira no formulário um componente OpenDialog, na palheta Dialog;
4. Um componente IdMessage na palheta Indy Misc e configure as propriedades From|Adress, com o e-mail do remetente e From|Name com o nome do remetente;
5. Um componente IdSMTP na palheta Indy Clients e configura as propriedades Host com o endereço IP ou o DNS do seu servidor de email, por exemplo: smtp.uol.com.br, e as propriedades Password e Username, para se autenticar no servidor, caso necessário;
6. No botão anexar digite o seguinte código:
Código:
begin if odAnexos.Execute then ListBox1.Items.Add(odAnexos.FileName); end;
Código:
procedure TForm1.Button2Click(Sender: TObject); var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem case cbxPrioridade.ItemIndex of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; end; IdMessage.Subject := edtAssunto.Text; IdMessage.Body := mmMensagem.Lines; if cbxConfirmaLeitura.Checked then IdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos for xAnexo := 0 to ListBox1.Items.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(ListBox1.Items.Strings[xAnexo])); IdSMTP.Connect; try IdSMTP.Send(IdMessage); finally IdSMTP.Disconnect; end; Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION + MB_OK); end;
Vejam abaixo o código completo.
Código:
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; edtPara: TEdit; edtCC: TEdit; edtCCO: TEdit; cbxPrioridade: TComboBox; edtAssunto: TEdit; cbxConfirmaLeitura: TCheckBox; mmMensagem: TMemo; ListBox1: TListBox; Button1: TButton; odAnexos: TOpenDialog; IdSMTP: TIdSMTP; IdMessage: TIdMessage; Button2: TButton; Label6: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if odAnexos.Execute then ListBox1.Items.Add(odAnexos.FileName); end; procedure TForm1.Button2Click(Sender: TObject); var xAnexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.CCList.EMailAddresses := edtCC.Text; IdMessage.BccList.EMailAddresses := edtCCO.Text; //Trata a Prioridade da mensagem case cbxPrioridade.ItemIndex of 0 : IdMessage.Priority := mpHigh; 1 : IdMessage.Priority := mpNormal; 2 : IdMessage.Priority := mpLow; end; IdMessage.Subject := edtAssunto.Text; IdMessage.Body := mmMensagem.Lines; if cbxConfirmaLeitura.Checked then IdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto Resposta //Tratando os arquivos anexos for xAnexo := 0 to ListBox1.Items.Count-1 do TIdAttachment.create(idmessage.MessageParts, TFileName(ListBox1.Items.Strings[xAnexo])); IdSMTP.Connect; try IdSMTP.Send(IdMessage); finally IdSMTP.Disconnect; end; Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION + MB_OK); end;
Comment