LOOP para envio de emails com varios smtps.

14/03/2013

0

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.
Marcelo Alves

Marcelo Alves

Responder

Posts

14/03/2013

William

Aparentemente o uso de um loop FOR resolve.
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 ...
Responder

14/03/2013

Marcelo Alves

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
Responder

14/03/2013

Marcelo Alves

respondendo melhor:
seria assim

2 logins no listbox
a cada 50 emails enviados ele utiliza o proximo login para continuar enviando a lista
Responder

14/03/2013

Francisco Macário

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).

Responder

14/03/2013

Marcelo Alves

voce fala utilizando for?
é 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;
Responder

14/03/2013

Francisco Macário

voce fala utilizando for?
é 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;

Responder

14/03/2013

Marcelo Alves

Olá aquela parte ja consegui, mas agora da um erro neste codigo.


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.
Responder

14/03/2013

Marcelo Alves

Obrigado a todos, ja consegui resolver e está funcional, para o ultimo erro foi so adicionar um break; apos o loop.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar