PDA

Ver la Versión Completa : INDY 10 problemas de envio de mails


shoulder
13-01-2023, 19:58:57
Una duda que no puedo corregir, tengo una aplicacion que envia mails hecha en delphi7 e Indy10 si yo mando un mail automatico y a los 10 minutos otro funciona perfecha. pero si yo envio 5 mails continuos y al minuto otros 7 de la segunda vuelta llegan 2, si repito 1 si repito nada, espero 1 hora y vuelve a estar todo normal. No me da error en nada conecto , autentico me sale el cartel de enviado sin error pero no me doy cuenta.
Gracias.

Casimiro Notevi
13-01-2023, 20:12:55
Después de casi 500 mensajes que tienes, vas y pones un título así de descriptivo :(
No olvides nuestra guía de estilo (https://www.clubdelphi.com/foros/guiaestilo.php), en este caso el punto 3. GRACIAS.

Casimiro Notevi
13-01-2023, 20:15:45
Y en cuanto a tu pregunta, es muy difícil responder porque no das información de ningún tipo, pero puede ser alguna característica de tu servidor de email, que tenga puesto que más de 5 emails es spam, y no los envía, por ejemplo, por decir algo, porque esto es jugar un poco a ser adivinos.

shoulder
13-01-2023, 21:06:55
Hola perdon...corregi el titulo, la aplicacion esta efectuada en delphi 7 e Indy10 - es un servidor propio de la empresa de mails, me dicen que no llegan a ver que se enviaron los mails.
Los mails que se usan son dentro de la empresa no hay Hotmail, gmail. El sistema manda un mail a un empleado que solicita algo, le envia una respuesta al mail de la empresa. Pero si 5 empleados de golpe mandan una solicitud envia el sistema 3 mails, hago un F8 veo que pasa por Connect() , smtp.Send( pero no llega nada) no da error tampoco. Pero si envio ujn mail solo y a los 10 minutos otro trabaja la aplicacion normalmente.





el codigo:


try
// CONEXION CON EL SERVIDOR DE CORREO
smtp.Connect();
SMTP.Authenticate;
try
// ENVIO DEL MENSAJE
smtp.Send(mail);
except
on E: Exception do
unmail := '';
//ShowMessage('Fallo al enviar: ' + E.Message);
end;
//ShowMessage('Mensaje enviado satisfactoriamente');
finally
if SMTP.Connected then SMTP.Disconnect;
smtp.free;
mail.free;

pgranados
13-01-2023, 21:18:59
Una duda que no puedo corregir, tengo una aplicacion que envia mails hecha en delphi7 e Indy10 si yo mando un mail automatico y a los 10 minutos otro funciona perfecha. pero si yo envio 5 mails continuos y al minuto otros 7 de la segunda vuelta llegan 2, si repito 1 si repito nada, espero 1 hora y vuelve a estar todo normal. No me da error en nada conecto , autentico me sale el cartel de enviado sin error pero no me doy cuenta.
Gracias.

Parece ser un problema más de tu correo que de tu aplicativo, ¿Por qué no intentas utilizar algún dominio de tu propiedad? empleado@empresa.com

Casimiro Notevi
13-01-2023, 21:23:21
Para estos casos lo mejor es que pongas un "log", y así poder seguir lo que ha hecho realmente y si los ha enviado o ha ocurrido algún error.
Me refiero a un simple fichero de texto donde guardes cada paso que hace el programa, algo así como:
Y también, mientras pruebas y descubres cuál es el problema, deberías quitar el try except end, para que salten los errores.

try // CONEXION CON EL SERVIDOR DE CORREO
log('Conectando...');
smtp.Connect();
log('Conectado.');
SMTP.Authenticate;
log('Aut...');
try // ENVIO DEL MENSAJE
log('Enviando...');
smtp.Send(mail);
log('Enviado.');
except
log('Error');
on E: Exception do
unmail := '';
//ShowMessage('Fallo al enviar: ' + E.Message);
end;
log('');
//ShowMessage('Mensaje enviado satisfactoriamente');
finally
log('Desconectando y liberando...');
if SMTP.Connected then SMTP.Disconnect;
smtp.free;
mail.free;
end;

Casimiro Notevi
13-01-2023, 21:25:01
Parece ser un problema más de tu correo que de tu aplicativo, ¿Por qué no intentas utilizar algún dominio de tu propiedad? empleado@empresa.com
También voto por eso, ya que si hubiese un problema con el programa entonces no funcionaría nunca.
El problema de los emails de dominios "raros" es que son tratados como spam y la mayoría de servidores de email ni siquiera los envía.