rogernem 0 Denunciar post Postado Outubro 4, 2007 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
marcio.theis 3 Denunciar post Postado Outubro 5, 2007 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
rogernem 0 Denunciar post Postado Outubro 5, 2007 tem como me demonstrar isso no codigo, por favor? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 5, 2007 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