Contador de LOOP
19/03/2013
0
Try SMTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1); SMTP.Disconnect; end;
Neste codigo queria que cada vez que fosse enviado o email o contador adiciona mais 1 email enviado a um label.
so que ele so adiciona um independente de quantos emails tenha a lista.
Marcelo Alves
Posts
19/03/2013
Francisco Macário
Esta parte de código não ajuda muito para a ajuda ou solução do seu problema.
Diretamente não esta "funcional" para o seu requisito.
Post o metodo completo, assim poderemos lhe ajudar.
At.
19/03/2013
Marcelo Alves
procedure TForm1.btnEnviarClick(Sender: TObject); Var i: integer; begin if checkbox1.Checked = true then SMTP.IOHandler := IO_OpenSSL; SMTP.UseTLS := utUseImplicitTLS; with SMTP do begin Host := txt_host.Text; Username := txt_user.Text; Password := txt_pass.Text; Port := strtoint(Edit4.Text); AuthType := satDefault; ConnectTimeout := 10000; ReadTimeout := 10000; end; with IO_OpenSSL do begin SSLOptions.Method := sslvSSLv23; SSLOptions.Mode := sslmClient; end; with Msg do begin From.Name := txt_nome.Text; From.Address := edt_name.Text; end; //Envio da mensagem // Assunto da Msg Msg.Subject := edtAssunto.Text; // Destinatários Msg.Recipients.Clear; for i := 0 to strtoint(edt_qtd.Text) do begin Msg.Recipients.Add; Msg.Recipients.Items[Msg.Recipients.Count - 1].Address := lstDestinatarios.Items[i]; end; // Counteúdo Msg.ContentType := 'text/plain'; Msg.Body.Text := mCorpo.Text; // Conectando e enviando Try SMTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1); SMTP.Disconnect; end; begin lbl_enviados.Caption := inttostr(contador); if lbl_enviados.Caption = edit4.text then begin deletelogin; end; end; Except on e: Exception do begin ShowMessage('ERRO: ' + e.Message); SMTP.Disconnect; end; End; end;
19/03/2013
Francisco Macário
Qual o escopo da variável "Contador"? Onde você está iniciando a variável?
20/03/2013
Marcelo Alves
MTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1);<--- Aqui o contador. ele exibe a quantidade em um label.
22/03/2013
Francisco Macário
MTP.Connect; if SMTP.Connected then begin SMTP.Send(Msg); inc(contador,1);<--- Aqui o contador. ele exibe a quantidade em um label.
Marcelo.
Reveja onde você declarou a variável contador. Ela deve estar como publica, inicie ela em zero ai sim ela ira implementar a contagem correta.
At.
Clique aqui para fazer login e interagir na Comunidade :)