Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rogernem

Envio de e-mails para varios destinatarios do banco de dados

Recommended Posts

Pessoal,

tenho meu codigo que envia email para um destinatario com copia tambem e com anexo (Com o INDY).

Gostaria de saber como faço para através de um dbgrid (ou o que der certo) chamar todos os e-mails de um banco de dados, selecionar os e-mails que quero mandar e enviar para todos os que selecionei

Como faço isso?

 

 

Segue o codigo

 

unit Unit_mail_indy;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient,  IdSMTP, IdBaseComponent, IdMessage, StdCtrls, Buttons;type  TForm1 = class(TForm)	Label1: TLabel;	Label2: TLabel;	Label3: TLabel;	edtPara: TEdit;	edtAssunto: TEdit;	lbxAnexos: TListBox;	mmMensagem: TMemo;	btAnexar: TBitBtn;	btEnviar: TBitBtn;	btFechar: TBitBtn;	odAnexos: TOpenDialog;	IdMessage: TIdMessage;	IdSMTP: TIdSMTP;	Label4: TLabel;	Label5: TLabel;	edtCc: TEdit;	Label6: TLabel;	edtBcc: TEdit;	procedure btAnexarClick(Sender: TObject);	procedure btFecharClick(Sender: TObject);	procedure btEnviarClick(Sender: TObject);  private	{ Private declarations }  public	{ Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.btAnexarClick(Sender: TObject);begin if odAnexos.Execute then	lbxAnexos.Items.Add(odAnexos.FileName);end;procedure TForm1.btFecharClick(Sender: TObject);begin Application.Terminate;end;procedure TForm1.btEnviarClick(Sender: TObject);var Anexo : Integer;begin  IdMessage.Recipients.EMailAddresses := edtPara.Text;  IdMessage.CCList.EMailAddresses := edtCc.Text;  IdMessage.BccList.EMailAddresses := edtBcc.Text;  IdMessage.Subject := edtAssunto.Text;  IdMessage.Body := mmMensagem.Lines;  //Manipulando os Anexos  for Anexo := 0 to lbxAnexos.Items.Count-1 do	TIdAttachment.Create(idmessage.MessageParts, TFileName(lbxAnexos.Items.Strings[Anexo]));  IdSMTP.Connect;  try	IdSMTP.Send(IdMessage);  finally	IdSMTP.Disconnect;  end;  Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION +   MB_OK);  edtPara.Text :='';  edtCc.Text   :='';  edtBcc.Text  :='';  edtAssunto.Text   :='';  mmMensagem.Text   :='';  lbxAnexos.Clear;end;end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar a própria query que usou para fazer o select que restringe os campos no DBGrid, fazendo um while e efetuando o envio, no caso terá de transformar em procedures o seu envio, recebendo o endereço de e-mail e então fazer o envio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tanto complicado, ai estaria fazendo todo o fonte para você, mas a intenção seria você criar uma procedure com o fonte que esta no botão btEnviar, algo como:

procedure Enviar(email: string);
E depois coloca a query em while:

query.First;while not query.Eof do	begin	Enviar(queryEMAIL.Value);	query.Next;	end;
Se quiser, pode ainda ver este exemplo, que usa em separado o procedimento de envio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.