LOOP para envio de emails com varios smtps.
Olá, gostaria de uma ajuda, estou desenvolvendo um enviador de email que utiliza 2 contas de smtp 1 do gmail e outra uol,
gostaria de saber como faço pra quando ele enviar 50 emails com uma conta pular para outra e continuar a enviar a lista de emails.
gostaria de saber como faço pra quando ele enviar 50 emails com uma conta pular para outra e continuar a enviar a lista de emails.
Marcelo Alves
Curtidas 0
Respostas
William
14/03/2013
Aparentemente o uso de um loop FOR resolve.
Exemplo:
Mas podem existir outras condições q vc não mencionou, detalhe um pouco mais ...
Exemplo:
for i:=0 to 50 do begin //Envia emails conta gmail end; for i:=0 to 50 do begin //Envia emails conta uol end;
Mas podem existir outras condições q vc não mencionou, detalhe um pouco mais ...
GOSTEI 0
Marcelo Alves
14/03/2013
Sim, gostaria desta forma
for i:0 to 50 do
begin
enviaos 50 pra gmail, puxando de um listbox.
end;
mas ai resta a duvida desta forma ele envia 50 email pra gmail
considerando gmail primeiro login e senha do listbox
email@gmail.com
email@uol.com.br
como ficaria pra quando terminar os 50 do gmail ele ja passar pro uol em 1 unicoo loop
for i:0 to 50 do
begin
enviaos 50 pra gmail, puxando de um listbox.
end;
mas ai resta a duvida desta forma ele envia 50 email pra gmail
considerando gmail primeiro login e senha do listbox
email@gmail.com
email@uol.com.br
como ficaria pra quando terminar os 50 do gmail ele ja passar pro uol em 1 unicoo loop
GOSTEI 0
Marcelo Alves
14/03/2013
respondendo melhor:
seria assim
2 logins no listbox
a cada 50 emails enviados ele utiliza o proximo login para continuar enviando a lista
seria assim
2 logins no listbox
a cada 50 emails enviados ele utiliza o proximo login para continuar enviando a lista
GOSTEI 0
Francisco Macário
14/03/2013
Você tem um componente para uso do email.
Crie um contador que ao atingir um numero X faça a troca das configurações da conta SMTP, e assim por diante até zerar sua fila (ou listbox).
Crie um contador que ao atingir um numero X faça a troca das configurações da conta SMTP, e assim por diante até zerar sua fila (ou listbox).
GOSTEI 0
Marcelo Alves
14/03/2013
voce fala utilizando for?
é isso que estou com duvidas
é isso que estou com duvidas
procedure envia; var i: integer; begin for i := 0 to strtoint(label1.caption) do begin //como seria comando aqui de mudar pro proximo login, //considerando login em um listbox end; end;
GOSTEI 0
Francisco Macário
14/03/2013
voce fala utilizando for?
é isso que estou com duvidas
é isso que estou com duvidas
procedure envia; var i: integer; begin for i := 0 to strtoint(label1.caption) do begin //como seria comando aqui de mudar pro proximo login, //considerando login em um listbox end; end;
Então vamos lá.
procedure envia; var i: integer; iCont:integer; begin iCont :=0; for i := 0 to strtoint(label1.caption) do begin inc(iCont); //como seria comando aqui de mudar pro proximo login, //considerando login em um listbox if iCont = 50 then begin //aqui vc chama um metodo para trocar as configurações do componente de email para a X conta. iCont :=0; end; end; end;
GOSTEI 0
Marcelo Alves
14/03/2013
Olá aquela parte ja consegui, mas agora da um erro neste codigo.
list index out of bounds (1)
alguem sabe o que pode ser?
ja separei do restante do projeto é nele que da o erro.
procedure TForm1.Button1Click(Sender: TObject); var config : TStringList; i: integer; begin if FileExists('Config.txt') then begin config := TStringList.Create; config.LoadFromFile('Config.txt'); for i := 0 to config.Count -1 do begin config.Delimiter := ';'; config.QuoteChar := ' '; config.StrictDelimiter := True; config.DelimitedText := config[0]; edit1.Text := config[0]; edit2.Text := config[1]; end; end; end;
list index out of bounds (1)
alguem sabe o que pode ser?
ja separei do restante do projeto é nele que da o erro.
GOSTEI 0
Marcelo Alves
14/03/2013
Obrigado a todos, ja consegui resolver e está funcional, para o ultimo erro foi so adicionar um break; apos o loop.
GOSTEI 0