Menssagem de Socket Erro me dando trabalho

Delphi

28/10/2012

Olá meus caros colegas,

estou com sérios problemas quanto aquela velha conhecida menssagem chata de Socket Erro que aparece toda vez que não há conecção de internet, ou quando a conecção fica oscilando e a aplicação não consegue enviar o email. Já andei pesquisando muito sobre isso e ate então não consegui sanar o problema.

Li que tinha que tratar exeções, até segui algumas dicas, mas sem sucesso. Alguém poderia me dar uma dica ao menos para amenizar a exibição dessas mensagens, agradeço muito.

Meu código naquela parte que envia está da seguinte forma >>


IdSMTP1.Connect; //Conecta  ao servidor

try
IdSMTP1.Send(IdMessage1); //Envia
finally
IdSMTP1.Disconnect; //Disconecta
end;
end;
end;
end.


Luiz Eduardo

Luiz Eduardo

Curtidas 0

Respostas

Luiz Eduardo

Luiz Eduardo

28/10/2012

Olá meus caros colegas,

estou com sérios problemas quanto aquela velha conhecida menssagem chata de Socket Erro que aparece toda vez que não há conecção de internet, ou quando a conecção fica oscilando e a aplicação não consegue enviar o email. Já andei pesquisando muito sobre isso e ate então não consegui sanar o problema.

Li que tinha que tratar exeções, até segui algumas dicas, mas sem sucesso. Alguém poderia me dar uma dica ao menos para amenizar a exibição dessas mensagens, agradeço muito.

Meu código naquela parte que envia está da seguinte forma >>


IdSMTP1.Connect; //Conecta  ao servidor

try
IdSMTP1.Send(IdMessage1); //Envia
finally
IdSMTP1.Disconnect; //Disconecta
end;
end;
end;
end.





OBS: Será que não existe alguma coisa tipo sei lá >>


IdSMTP1.Connect; //Conecta  ao servidor

try
IdSMTP1.Send(IdMessage1); //Envia
exept
MessageBox.Hidden
finally
IdSMTP1.Disconnect; //Disconecta
end;
end;
end;
end.



???
GOSTEI 0
Claudia Nogueira

Claudia Nogueira

28/10/2012

É com tratamento de exceção mesmo.
Pode colocar todo o código no mesmo bloco do try except e tratar a mensagem.
Se estiver compilando, a exceção vai mostrar de qualquer forma, a não ser que você marque a opção para ignorar exceção.
Executando normal, por fora do Delphi, irá mostrar somente a mensagem tratada.
GOSTEI 0
Singular Ti

Singular Ti

28/10/2012

Eduardo tente fazer assim:
para se conetar ao servidor smtp:
try
      IdSMTP.Connect(2000); // tenta se conectar no servidor de email (smtp) aguarda 2 segundos antes de tentar novamente
    except
      raise Exception.Create('Atenção, problemas ao conectar-se com o seu servidor SMTP');
    end;


Depois na hora de enviar o e-mail tu pode fazer assim:
 try
        IdSMTP.Send(IdMessage);
      except
        raise Exception.Create('Atenção, falha ao enviar a mensagem de e-mail');
      end;

Espero ter ajudado...
GOSTEI 0
POSTAR