Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Error SMTP

Estas en el tema de Error SMTP en el foro de Oracle en Foros del Web. Hola, estoy teniendo problemas en un servidor al ejecutar un procedimiento que envia un correo. Cuando lo ejecuto, el error que devuelve es ORA-20004: ORA-29278: ...
  #1 (permalink)  
Antiguo 04/07/2008, 03:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Error SMTP

Hola, estoy teniendo problemas en un servidor al ejecutar un procedimiento que envia un correo. Cuando lo ejecuto, el error que devuelve es

ORA-20004: ORA-29278: error transitorio de SMTP: 421 Service not available
ORA-06512: en "SYS.SEND_MAIL", línea 23
ORA-06512: en línea 13

En principio el procedimiento lo he repasado minuciosamente y está bien, además lo tengo instalado en otros 50 servidres idénticos con idénticas bases de datos y funciona correctamente.
Buscando información del error he encontrado un manual para comprobar via telnet si el servidor se comunica correctaemte con el servidor de correo, y tras varias pruebas todas han salido bien.

¿a alguien se le ocurre alguna idea?
  #2 (permalink)  
Antiguo 04/07/2008, 04:18
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Error SMTP

Hola,

¿Via telnet puedes enviar un correo con los mismos datos que con Oracle?, es decir, las mismas direcciones de origen y destino, tambien el nombre del servidor o ip.

Imagino que el body y la cabecera del correo se construyen en forma dinamica, intenta ver un output de esa informacion, a veces un correo mal formado te puede devolver ese error.

Saludos
  #3 (permalink)  
Antiguo 04/07/2008, 04:46
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Error SMTP

Hola Matanga.
Via Telnet si me ha funcionado sin problema con los mismos datos.

En cuanto a lo del output, no se exactamente a que te refieres con eso. Si me puedes decir mas o menos que tengo que hacer...

Por cierto, no se si tendrá algo que ver, pero habia como 15 objetos de all_objects con estado INVALID, pero ya están todos reparados, y como era de esperar, no se ha solucionado nada.

Un saludo
  #4 (permalink)  
Antiguo 04/07/2008, 04:53
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Error SMTP

Hola,

Cita:
...pero ya están todos reparados, y como era de esperar, no se ha solucionado nada.
Suele pasar, cuando creemos ver la luz al final del tunel, es el metro que viene de frente.. :)

Con el output me refiero que un dbms_output.put_line(variable) dentro del procedimiento que envia el correo, donde variable contiene todos los datos referentes a la composicion del correo, de esta manera puedes ver si se esta mal formando.

Saludos
  #5 (permalink)  
Antiguo 04/07/2008, 06:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Error SMTP

Vale, le he metido este trozo de código:


EXCEPTION
WHEN OTHERS THEN
BEGIN
DBMS_OUTPUT.PUT_LINE('error');
END;
END send_mail;
/

pero ¿como puedo ver que se ha guardado en la variable 'error' una vez he ejecutado el procedimiento?

Desde el TOAD, habilito DBMS Output pero solo me pone 'error' es decir, el nombre de la variable, no su valor...
  #6 (permalink)  
Antiguo 04/07/2008, 06:17
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Error SMTP

Hola,

Para ver el mensaje de error tienes las funciones sqlerrm y sqlcode, dentro del dbms_output.put_line van sin comillas simples, sino las interpreta como texto, por ejemplo

Código:
dbms_output.put_line(sqlcode);
dbms_output.put_line(sqlerrm);
De todos modos, esto te va a decir lo que ya sabes, que es la excepcion inicial que posteaste, a lo que me referia es a un output de la variable que contiene el body y el header del mensaje smtp, esto es para ver si se esta formando correctamente.

Saludos
  #7 (permalink)  
Antiguo 07/07/2008, 01:34
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Error SMTP

Ok, ya lo he entendido.
Poniendo SQLERRM me devuelve el código y la descripción del error, como bien has dicho. Entonces he puesto la siguiente linea:
DBMS_OUTPUT.PUT_LINE(mesg);
Donde mesg es la variable que contiene la cadena con todos los datos que se van a enviar, pero tras ejecutarlo en Toad, no aparece nada en la pestana DBMS Output. ¿podria ver el contenido de la variable de alguna otra forma?
  #8 (permalink)  
Antiguo 07/07/2008, 01:44
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Error SMTP

Hola,

El TOAD tiene la posibilidad de hacer un debug de PL/SQL, a partir de ahi es como cualquier lenguaje, pones un watch para la variable y listo.

Saludos
  #9 (permalink)  
Antiguo 03/09/2008, 03:35
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Error SMTP

Hola.

Queria retomar este tema porque ya se por qué falla el procedimiento.

En realidad el procedimiento en si no falla, pero por algún motivo si lo lanzo desde el TOAD da el error que comentaba anteriormente, pero sin embargo si lo hago desde SqlPlus con el mismo usuario e introduciendo los mismos parámetros funciona correctamente.

Es mas, tras ejecutarlo desde SqlPlus una vez, y luego programar un Job en TOAD para que lo ejecute, funciona bien, pero si vuelvo a intentar ejecutarlo desde el Schema Browser del TOAD vuelve a darme este error...

¿Alguien sabe porqué podría estar fallando desde TOAD?

Un saludo
  #10 (permalink)  
Antiguo 03/09/2008, 21:32
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Error SMTP

no sera cuestion de la version de toad que tienes? igual si la subes a la ultima disponible se resuelve
__________________
Blogzote.com :-) Mi blog
  #11 (permalink)  
Antiguo 04/09/2008, 01:50
 
Fecha de Ingreso: marzo-2005
Mensajes: 189
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Error SMTP

¿Sabes donde puedo descargar la última versión?

Me la he bajado varias veces (la version 9.0) pero siempre viene con licencia hasta noviembre de 2007, por lo tanto no puedo usarla...
  #12 (permalink)  
Antiguo 04/09/2008, 06:03
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Error SMTP

bueno de entrada creo que ya van por la 9.6 (buscate en google toad para encontrar su pagina) y de la licencia no hay de otra, es de pago, igual checate sql developer de oracle, al menos solo para probar
__________________
Blogzote.com :-) Mi blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:36.