Fórum Indy da erro ao enviar email invalido #284031

08/06/2005

0

Salve pessoal,

Fiz um pequeno programa para envio de email usando o Delphi 7 e o Indy 10 o problema é que na minha lista de email que esta em txt tem varios emails invalidos ... eu até ja fiz o teste e nem o outlook consegue enviar o email ... um email que que da problema: imoreira@imadvs.com.br se alguem quizer fazer o teste.

Bom minha dúvida é a seguinte tem como eu ignorar esta validação que o Indy faz ... tipo mesmo que o email nao tenha um servidor valido ele seja descartado ou enviado assim mesmo sem provocar um erro no meu sistema ????

Se alguem puder me ajudar ficarei muito grato.

valewsss


Mmoreira

Mmoreira

Responder

Posts

08/06/2005

Mmoreira

ninguem ja passou por este problema ???


Responder

Gostei + 0

09/06/2005

Mmoreira

sobe ...


Responder

Gostei + 0

09/06/2005

Isabelct

Bom minha dúvida é a seguinte tem como eu ignorar esta validação que o Indy faz ... tipo mesmo que o email nao tenha um servidor valido ele seja descartado ou enviado assim mesmo sem provocar um erro no meu sistema ????

Coloque a rotina de envio de email dentro de um bloco try..except..end. Assim, qualquer erro que ocorra poderá ser tratado, e o envio continuará a partir do próximo e-mail.

Para este exemplo, os emails precisariam ser enviados um a um, dentro de um loop que percorre o arquivo texto com os emails de destino.

Ex.:

while <não chega o final do arquivo> do
begin
  try
    // Suas instruções de envio de email serão colocadas aqui
  except
    // Aqui pode ser gerado um log de erros...
  end;
end;



Responder

Gostei + 0

09/06/2005

Mmoreira

salve isabelct

mas é exatamento o que eu estou fazendo, primeiro eu crio um stringlist com o conteudo de arquivo texto ... depois faço um loop que varre o stringlist enviando os emails um a um fica assim:

    SMTP.Connect;
    try

      // Destinatario
      for contador := 0 to Fm_ProgressoStatus.ListBox1.Count - 1 do begin

        // Aqui eu defino o email a ser enviado
        IdMsgSend.Recipients.EMailAddresses := Fm_ProgressoStatus.ListBox1.Items.Strings[ contador ];

        // Aqui envia a mensagem
        SMTP.Send(IdMsgSend);

        Fm_ProgressoStatus.Gauge1.Progress := contador;
        Fm_ProgressoStatus.ListBox1.ItemIndex := contador;

      end;

    finally
      SMTP.Disconnect;
      Fm_ProgressoStatus.Close;
    end;


Onde esta o erro ????

como eu havia dito os endereços de email em questao que estao dando proplema nem o outlook consegue enviar ...


Responder

Gostei + 0

09/06/2005

Isabelct

salve isabelct mas é exatamento o que eu estou fazendo, primeiro eu crio um stringlist com o conteudo de arquivo texto ... depois faço um loop que varre o stringlist enviando os emails um a um fica assim: Onde esta o erro ???? como eu havia dito os endereços de email em questao que estao dando proplema nem o outlook consegue enviar ...


Tente proteger a rotina de envio de email com um bloco try..except. Assim:

    SMTP.Connect;
    try

      // Destinatario
      for contador := 0 to Fm_ProgressoStatus.ListBox1.Count - 1 do begin

        try // adicionei esta linha
          // Aqui eu defino o email a ser enviado
          IdMsgSend.Recipients.EMailAddresses := Fm_ProgressoStatus.ListBox1.Items.Strings[ contador ];

          // Aqui envia a mensagem
          SMTP.Send(IdMsgSend);
        except // adicionei esta linha
        end; // adicionei esta linha
        Fm_ProgressoStatus.Gauge1.Progress := contador;
        Fm_ProgressoStatus.ListBox1.ItemIndex := contador;

      end;

    finally
      SMTP.Disconnect;
      Fm_ProgressoStatus.Close;
    end;


O bloco try..except garante que, mesmo havendo erro no envio de um dos emails, os demais serão enviados.

Faça um teste aí e depois me retorne dizendo se funcionou.


Responder

Gostei + 0

09/06/2005

Mmoreira

amigão ....

voce salvou minha vida.
O try que vc me sugeriu funcionou perfeitamente. Muito obrigado pela atenção.

Apenas para deixar registrado no Except basta nao colocar nenhuma mensagem do tipo ShowMessage que toda a lista de emails é enviada.


valewssss


Responder

Gostei + 0

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

Aceitar