Como enviar e-mail no delphi 7 ?
18/02/2003
0
Como enviar e-mail no delphi 7 ?
Grato!
Grato!
Anormal
Curtir tópico
+ 0
Responder
Posts
19/02/2003
Anonymous
existe um componente no delphi 7 chamado actionmensagem na paleta
additional e um dos ultimos, insira ele no formulario e de um duplo click
click com o botao direito cateroria e selecione newstamdartaction vai aparecer uma arvore igual o explore.Dividido por categorias em internet
vai estar e_mail click nele e proto.
coloque um botao e vincule a sua propriedade aciton ao que vc criou.
o componente chama o correio padrao do micro.
additional e um dos ultimos, insira ele no formulario e de um duplo click
click com o botao direito cateroria e selecione newstamdartaction vai aparecer uma arvore igual o explore.Dividido por categorias em internet
vai estar e_mail click nele e proto.
coloque um botao e vincule a sua propriedade aciton ao que vc criou.
o componente chama o correio padrao do micro.
Responder
19/02/2003
Anonymous
Crie uma nova Application no delphi, adicione e modifique a propriedades dos seguintes componentes:
ComponenteNomeValor
Label1CaptionPara :
Label2CaptionCC :
Label3CaptionCCO :
Label4CaptionAssunto
Edit1Text
NameEdtPara
Edit2Text
NameEdtCC
Edit3Text
NameEdtCCO
LabelCaptionPrioridade
ComboBoxNameCbxPrioridade
ItemsAlta
Normal
Baixa
CheckBoxcbxConfirmaLeitura&Solicitar confirmação de leitura
MemoLines
NameMmMensagem
BitBtnNamebtnEnviar
Caption&Enviar
BitBtnNamebtnAnexar
CaptionAnexar
MemoNamemmAnexos
Lines
ScrollBarsSsVertical
OpenDialogNameodAnexos
TitleAnexando Arquivos
Filter | Filter NameTodos os Arquivos (*.*)
Filter | Filter *.*
Agora vá até a paleta Indy Clients e adicione o componente IdSMTP, depois vá até a paleta Indy Misc e adicione o componente IdMessage e altere as seguintes propriedades:
ComponenteNomeValor
IdMessageNameIdMessage
From | Addressseuemail@provedor.com
From | NameSeunome
IdSMTPNameIdSMTP
HostSeuhost.com.br
UserIdSeu Nome do usuário
Bom, todos os componentes necessários para que possamos enviar um email já estão em nosso formulário. Agora vamos começar a codificar (é a parte que mais gosto de um sistema, odeio instanciar componentes).
Dê um duplo clique em btnAnexar, e adicione o seguinte código :
//Insere o nome do arquivo no memo mmAnexos
if odAnexos.Execute Then
mmAnexos.Lines.Add(odAnexos.FileName);
Nesse ponto cada vez que você clicar no botão Anexar e você selecionar um arquivo ele vai gravar o nome e o caminho do arquivo no Memo mmAnexos.
Agora dê clique duplo no btnEnviar e adicione mais esse código :
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.Sender.Text := mmMensagem.Lines.Text;
if cbxConfirmaLeitura.Checked Then
idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta
//Tratando os arquivos anexos
For xAnexo := 0 to mmAnexos.Lines.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo]));
IdSMTP.Connect;
Try
IdSMTP.Send(IdMessage);
Finally
IdSMTP.Disconnect;
End;
Nosso sistema de envio de email já está concluído agora é só você realizar seus testes, os indy são muito uteis principalmente para enviar email com anexos, tendo em vista que quando você usa o ShellExecute para enviar email ele não envia email anexo.
Mas os componentes Indy não resume-se apenas a isso, vale a pena você dar uma olhada com mais calma e descobrir a potencialidade dos mesmos.
Confira abaixo como ficou o código completo do sistema.
unit fSendIndy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Menus, IdMessage, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;
type
TForm1 = class(TForm)
Label1: TLabel;
edtPara: TEdit;
Label2: TLabel;
Label3: TLabel;
edtCC: TEdit;
edtCCo: TEdit;
cbxConfirmaLeitura: TCheckBox;
mmMensagem: TMemo;
btnEnviar: TBitBtn;
Label4: TLabel;
edtAssunto: TEdit;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
btnAnexar: TBitBtn;
mmAnexos: TMemo;
odAnexos: TOpenDialog;
cbxPrioridade: TComboBox;
Label5: TLabel;
procedure btnEnviarClick(Sender: TObject);
procedure btnAnexarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnEnviarClick(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.Sender.Text := mmMensagem.Lines.Text;
if cbxConfirmaLeitura.Checked Then
idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta
//Tratando os arquivos anexos
For xAnexo := 0 to mmAnexos.Lines.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo]));
IdSMTP.Connect;
Try
IdSMTP.Send(IdMessage);
Finally
IdSMTP.Disconnect;
End;
end;
procedure TForm1.btnAnexarClick(Sender: TObject);
begin
//Insere o nome do arquivo no memo mmAnexos
if odAnexos.Execute Then
mmAnexos.Lines.Add(odAnexos.FileName);
end;
end.
______________________
Espero que tenha ajudado.
Fábio W. de Chantal
ICQ: 206575513
ComponenteNomeValor
Label1CaptionPara :
Label2CaptionCC :
Label3CaptionCCO :
Label4CaptionAssunto
Edit1Text
NameEdtPara
Edit2Text
NameEdtCC
Edit3Text
NameEdtCCO
LabelCaptionPrioridade
ComboBoxNameCbxPrioridade
ItemsAlta
Normal
Baixa
CheckBoxcbxConfirmaLeitura&Solicitar confirmação de leitura
MemoLines
NameMmMensagem
BitBtnNamebtnEnviar
Caption&Enviar
BitBtnNamebtnAnexar
CaptionAnexar
MemoNamemmAnexos
Lines
ScrollBarsSsVertical
OpenDialogNameodAnexos
TitleAnexando Arquivos
Filter | Filter NameTodos os Arquivos (*.*)
Filter | Filter *.*
Agora vá até a paleta Indy Clients e adicione o componente IdSMTP, depois vá até a paleta Indy Misc e adicione o componente IdMessage e altere as seguintes propriedades:
ComponenteNomeValor
IdMessageNameIdMessage
From | Addressseuemail@provedor.com
From | NameSeunome
IdSMTPNameIdSMTP
HostSeuhost.com.br
UserIdSeu Nome do usuário
Bom, todos os componentes necessários para que possamos enviar um email já estão em nosso formulário. Agora vamos começar a codificar (é a parte que mais gosto de um sistema, odeio instanciar componentes).
Dê um duplo clique em btnAnexar, e adicione o seguinte código :
//Insere o nome do arquivo no memo mmAnexos
if odAnexos.Execute Then
mmAnexos.Lines.Add(odAnexos.FileName);
Nesse ponto cada vez que você clicar no botão Anexar e você selecionar um arquivo ele vai gravar o nome e o caminho do arquivo no Memo mmAnexos.
Agora dê clique duplo no btnEnviar e adicione mais esse código :
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.Sender.Text := mmMensagem.Lines.Text;
if cbxConfirmaLeitura.Checked Then
idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta
//Tratando os arquivos anexos
For xAnexo := 0 to mmAnexos.Lines.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo]));
IdSMTP.Connect;
Try
IdSMTP.Send(IdMessage);
Finally
IdSMTP.Disconnect;
End;
Nosso sistema de envio de email já está concluído agora é só você realizar seus testes, os indy são muito uteis principalmente para enviar email com anexos, tendo em vista que quando você usa o ShellExecute para enviar email ele não envia email anexo.
Mas os componentes Indy não resume-se apenas a isso, vale a pena você dar uma olhada com mais calma e descobrir a potencialidade dos mesmos.
Confira abaixo como ficou o código completo do sistema.
unit fSendIndy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Menus, IdMessage, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;
type
TForm1 = class(TForm)
Label1: TLabel;
edtPara: TEdit;
Label2: TLabel;
Label3: TLabel;
edtCC: TEdit;
edtCCo: TEdit;
cbxConfirmaLeitura: TCheckBox;
mmMensagem: TMemo;
btnEnviar: TBitBtn;
Label4: TLabel;
edtAssunto: TEdit;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
btnAnexar: TBitBtn;
mmAnexos: TMemo;
odAnexos: TOpenDialog;
cbxPrioridade: TComboBox;
Label5: TLabel;
procedure btnEnviarClick(Sender: TObject);
procedure btnAnexarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnEnviarClick(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.Sender.Text := mmMensagem.Lines.Text;
if cbxConfirmaLeitura.Checked Then
idmessage.ReceiptRecipient.Text := IDMessage.From.Text; // Auto Resposta
//Tratando os arquivos anexos
For xAnexo := 0 to mmAnexos.Lines.Count-1 do
TIdAttachment.create(idmessage.MessageParts, TFileName(mmAnexos.Lines.Strings[xAnexo]));
IdSMTP.Connect;
Try
IdSMTP.Send(IdMessage);
Finally
IdSMTP.Disconnect;
End;
end;
procedure TForm1.btnAnexarClick(Sender: TObject);
begin
//Insere o nome do arquivo no memo mmAnexos
if odAnexos.Execute Then
mmAnexos.Lines.Add(odAnexos.FileName);
end;
end.
______________________
Espero que tenha ajudado.
Fábio W. de Chantal
ICQ: 206575513
Responder
Clique aqui para fazer login e interagir na Comunidade :)