Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Dbgrid.


hencker

Pergunta

Eu tenho um DBGrid, que depois de uma determinada condição fica carregado com os e-mails dos meus clientes.

Agora eu gostaria de saber como eu faço para ter uma rotina "linha a linha". Vamos supor que eu fosse mandar um e-mail para todos eles, porém desejo mandar um por vez (para que um não possa saber o e-mail do outro).

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá Hencker....

Não sei se vai ajudar ou se você já tentou fazer o que vou oferecer aqui, mas e se você fizer uma rotina para percorrer toda a tabelas dos e-mails e dentro dessa rotina os comandos de envio.... tipo:

procedure TForm1.Button1Click(Sender: TObject);
Var i : integer;
begin
  for i := 1 to ADOQuery1.RecordCount do
  begin
    ADOQuery1.Edit;
    ADOQuery1Nome.Value := ADOQuery1Nome.Value + ' a';
    ADOQuery1.Post;
    ADOQuery1.Next;
  end;
end;

No exemplo acima o comando percorre toda a tabela e vai adicionando o caractere em cada registro. Acredito que no seu caso seja igual é só no lugar dos comandos de adicionar os caracteres você colocar a rotina para enviar o e-mail.

OBS: não testei enviando e-mail. Isso é só uma dica.

Alexandre

Link para o comentário
Compartilhar em outros sites

  • 0

Olá hencker,

to meio enferrujado :D

mas seria tipo assim:

utilisando os componentes Indy

procedure TForm1.Button1Click(Sender: TObject);
var
  Memo1: TMemo;
begin
  Memo1.Text := 'Corpo da mensagem...';
  Query1.First;
  While not Query1.EOF do begin
    if Query1.FieldByName('email_cliente').AsString <> '' then begin
      with IdMessage1 do begin
        Body.Assign(Memo1.Lines);
        From.Text := 'seuemail@seuprovedor.com.br';
        Recipients.EMailAddresses := Query1.FieldByName('email_cliente').AsString;
        Subject := 'Assunto';
      end;

      IdSMTP1.Host:='smtp.seuprovedor.com.br';
      IdSMTP1.Port:= 25;

      IdSMTP1.Username := 'seunome';
      IdSMTP1.Password := 'suasenha';

      IdSMTP1.Connect;
      try
        IdSMTP1.Send(IdMessage1);
      finally
        IdSMTP1.Disconnect;
      end;
    end;
    Query1.Next;
  end;
end;

Abs. Progr'amador. ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Eu fiz assim ó:

var
  com, push :Integer;
  i : Integer;
begin
  DMCon.ZCom.Active   := False;
  DMCon.ZPush.Active  := False;

  DMCon.ZCom.Active   := True;
  DMCon.ZPush.Active  := True;

  push := DMCon.ZPushtopic_id.Value;
  com  := DMCon.ZComUltima.Value;

  if push > com then
    begin
      mMensagem.Lines.Add('Você está recebendo essa mensagem pois há um novo tópico de título "'+ DMCon.ZPushtopic_title.Value+'".');
      mMensagem.Lines.Add('Para visualizar e responder essa mensagem basta clicar no link abaixo:');
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('http://www.debates.not.br/push/viewtopic.php?t='+ IntToStr(DMCon.ZPushtopic_first_post_id.Value) );
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('');
      mMensagem.Lines.Add('---------------------------------------------------');

      for i := 1 to DMCon.ZIndividual.RecordCount do
        begin
         idMensagem.Recipients.EMailAddresses := DMCon.ZIndividualuser_email.Value;
         idMensagem.Subject := '[debates.not.br] '+ DMCon.ZPushtopic_title.Value;
         idMensagem.Body := mMensagem.Lines;

          try
            IdSMTP.Connect;
            IdSMTP.Send(idMensagem);
          finally
           IdSMTP.Disconnect;
          end;
          DMCon.ZIndividual.Next;
        end;

      with DMCon do
        begin
          ZCom.Close;
          ZTUpdt.Edit;
          ZTUpdtUltima.Value := ZTUpdtUltima.Value + 1;
          ZTUpdt.CommitUpdates;
          Zcom.Open;
        end;
      mMensagem.Lines.Clear;
  end;

Esse código está atrelado ao evento onTimer, pois preciso que ele seja executado a cada 1 minuto! Usei o Indy para enviar!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...