Envío de correos desde Forms

Buenas:
Estoy intentando enviar correos, desde un formulario de Forms. Tengo copiados los ejemplos que he encontrado en otras páginas web pero, aunque el código está perfectamente copiado me muestra el error ORA-29540.
He puesto puntos de control en el código y siempre falla en la primera linea que utiliza el utl_smtp.
He leído varios foros, pero ninguno explica claramente como puedo solucionar el problema. La BB.DD. Es una 8.
Si alguien puede ayudarme, muchas gracias de antemano.
Un saludo
1

1 Respuesta

27.925 pts. Lugar y fecha de nacimiento : Caracas, Junio 1
Mándame como lo estas haciendo para ayudarte
El código recortado es este:
Declare
------------------MAILS-----------------
mailhost varchar2(100) := '172.16.52.2';
mail_conn utl_smtp.connection;
sender varchar2(100) := 'pers';
msg_text varchar2(2000);
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
begin
IF RSEMPLEADOS.EMAIL IS NOT NULL THEN
mail_conn := utl_smtp.open_connection(mailhost, 25);
utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, sender);
utl_smtp.rcpt(mail_conn, RSEMPLEADOS.EMAIL);
-- Build The Message Body.
IF CONT < 23 THEN --Si el mensaje no es muy largo pq el emple no tiene ej.600 gtos
msg_text := 'Date: ' || '' || crlf ||
'From: Depto.RRHH' || crlf ||
'Subject: Transferencias Gastos'||' '||NOMBRE||' '||APELLIDO1 ||crlf||
'To: '||RSEMPLEADOS.EMAIL || crlf ||
'Cc: ' || crlf ||
'' || crlf ||
'En los próximos días recibirá una transferencia de gastos por importe de: '||RSEMPLEADOS.CANTIDAD||' Euros '|| crlf||'Nombre: '||NOMBRE||' '||APELLIDO1||' '||APELLIDO2||crlf||crlf ||AUXMENS||
'*';
ELSE
msg_text := 'Date: ' || '' || crlf ||
'From: Depto.RRHH' || crlf ||
'Subject: Transferencias Gastos'||' '||NOMBRE||' '||APELLIDO1 || crlf||
----------------------------'To: [email protected]' || crlf ||
'To: '||RSEMPLEADOS.EMAIL || crlf ||
'Cc: ' || crlf ||
'' || crlf ||
'En los próximos días recibirá una transferencia de gastos por importe de: '||RSEMPLEADOS.CANTIDAD||' Euros '|| crlf||'Nombre: '||NOMBRE||' '||APELLIDO1||' '||APELLIDO2||crlf||crlf ||CORTOMENS||
'*';
END IF;
-- Send the data.
utl_smtp.data(mail_conn, msg_text);
utl_smtp.quit(mail_conn);
END IF;
MESSAGE('PROCESO TERMINADO');
MESSAGE('PROCESO TERMINADO');
END;
Se ejecuta desde un When-Button-Pressed.
Posiblemente con la ejecución del *.sql, funcionará, pero si ves algo en el código coméntamelo.
Muchas gracias,
Has la siguiente acción:
1.- Entra al servidor con la clave dueño de Oracle.
2.- Ubicate en: $ORACLE_HOME/rdbms/admin
3.- Desde SQLPLUS conectado como SYS ejecutas:
@initplsj.sql
Lo anterior te creará y corregirá las clases de Java que debe tener el Servidor, para que entre otras cosas, puedas trabajar con los packages UTL_SMTP y UTL_TCP.
Si ya hiciste las recomendaciones anteriores que te mandé en cuanto a correr el Script en la BD con la cuenta de SYS y todavía tienes problemas, lo único que puedo ver en el programa es:
1.- sender varchar2 (100) := 'pers'; (´pers' debe ser una dirección válida de email).
2.- Rsempleados. EMAIL (Igual que la anterior).
3.- LA variable "CONT" no se define en ningún sitio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas