Como enviar e-mail no delphi 7 ?

Delphi

18/02/2003

Como enviar e-mail no delphi 7 ?

Grato!


Anormal

Anormal

Curtidas 0

Respostas

Anonymous

Anonymous

18/02/2003

Eu uso o Afquick Mail, aqui do clube Delphi.


GOSTEI 0
Anonymous

Anonymous

18/02/2003

Eu uso o Afquick Mail, aqui do clube Delphi.


GOSTEI 0
Anonymous

Anonymous

18/02/2003

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.


GOSTEI 0
Anonymous

Anonymous

18/02/2003

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


GOSTEI 0
POSTAR