Como usar vários SMTP no INDY-D7???
Gostaria de saber como fazer para q quando o programa tenta-se enviar por um SMTP ele detectasse que o SMTP1 caiu e passar pro SMTP2....
O4pr3ndiz
Curtidas 0
Respostas
Massuda
07/07/2005
Faça algo mais ou menos assim:
... const SERVIDOR_SMTP: array[0..2] of string = ( ´smtp0.example.com´, ´smtp1.example.com´, ´smtp2.example.com´ ); var I: Integer; .... while not IdSMTP1.Connected do begin for I := Low(SERVIDOR_SMTP) to High(SERVIDOR_SMTP) do begin IdSMTP1.Host :=SERVIDOR_SMTP[I]; IdSMTP1.AuthenticationType := ... IdSMTP1.Username := ... IdSMTP1.Password := ... try IdSMTP1.Connect; Break; // conectou, pára o loop except if I = High(SERVIDOR_SMTP) then begin // não tem mais servidores, passa a exceção para frente raise; end; end; end; end; try ... IdSMTP1.Send(...); ... finally IdSMTP1.Disconnect; end; ...
GOSTEI 0
O4pr3ndiz
07/07/2005
Agradeço a força mas este codigo so permite um nome de usuário e senha...
E mesmo q eu crie o usuario user2005 e a senha 123456 em 3 servers smpt diferentes ele so funcionou no smtp.mail.yahoo.com.br, no smtps.uol.com.br e smtp.bol.com.br naum..
:(
E mesmo q eu crie o usuario user2005 e a senha 123456 em 3 servers smpt diferentes ele so funcionou no smtp.mail.yahoo.com.br, no smtps.uol.com.br e smtp.bol.com.br naum..
:(
GOSTEI 0
Massuda
07/07/2005
Agradeço a força mas este codigo so permite um nome de usuário e senha...
O código postado mostra como detectar que a conexão falhou e tentar outro servidor. Para administrar os diferentes usuários associados a cada servidor use uma tabela de BD ou uma estrutura de dados adequada. Já os detalhes de conexão (precisar ou não autenticação, conectar com o POP3, etc) já foi discutido no fórum em outros tópicos.GOSTEI 0
O4pr3ndiz
07/07/2005
estou muito precisando disto.. Obrigado..
GOSTEI 0
Christian_adriano
07/07/2005
Olá Colega o4pr3ndiz,
Vc pode usar de vetores, uma para os SMTPs , PASWORDs, LOGINs:
Ficaria mais ou menos assim:
Espero que ajude.
[]´s.
Christian.[/code]
Vc pode usar de vetores, uma para os SMTPs , PASWORDs, LOGINs:
Ficaria mais ou menos assim:
... const SERVIDOR_SMTP: array[0..2] of string = ( ´smtp0.example.com´, ´smtp1.example.com´, ´smtp2.example.com´ ); PASSWORDs: array[0..2] of string = ( ´12345´, ´864596´, ´7845455xy´ ); LOGINs: array[0..2] of string = ( ´login1´, ´login2´, ´login3´ ); var I: Integer; .... while not(IdSMTP1.Connected) do begin for I := Low(SERVIDOR_SMTP) to High(SERVIDOR_SMTP) do begin IdSMTP1.Host :=SERVIDOR_SMTP[I]; IdSMTP1.AuthenticationType := ... IdSMTP1.Username := LOGINs[I]; IdSMTP1.Password := PASSWORDs[I]; try IdSMTP1.Connect; Break; // conectou, para o loop except if I = High(SERVIDOR_SMTP) then begin // não tem mais servidores, passa a exceção para frente raise; end; end; end; end; try ... IdSMTP1.Send(...); ... finally IdSMTP1.Disconnect; end; ...
Espero que ajude.
[]´s.
Christian.[/code]
GOSTEI 0