Indy da erro ao enviar email invalido
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
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
Curtidas 0
Respostas
Mmoreira
08/06/2005
ninguem ja passou por este problema ???
GOSTEI 0
Mmoreira
08/06/2005
sobe ...
GOSTEI 0
Isabelct
08/06/2005
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;
GOSTEI 0
Mmoreira
08/06/2005
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 ...
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 ...
GOSTEI 0
Isabelct
08/06/2005
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.
GOSTEI 0
Mmoreira
08/06/2005
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
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
GOSTEI 0