Enviar mail

Enviar un mail desde oracle forms es una tarea muy sencilla de codificar. Solamente basta con seguir los siguientes pasos:

1. En el editor de diseño, crear un bloque llamado “bloque_mail” y crear los elementos de texto ORIGEN, HOST, DESTINO, ASUNTO, MENSAJE

2. Crear un procedimiento llamado EnviarMail, en el area de unidades de programa del navegador de objetos. El código del procedimiento es:


PROCEDURE EnviarMail(origen_wk IN VARCHAR2, destino_wk IN VARCHAR2, host_wk IN VARCHAR2, asunto_wk IN VARCHAR2, mensaje_wk IN VARCHAR2)
IS
 
 mailhost VARCHAR2(30) := ltrim(rtrim(host_wk));
mail_conn utl_smtp.connection;
crlf VARCHAR2(2):= CHR(13) || CHR(10);
msg VARCHAR2( 2000 );
 
BEGIN 
 mail_conn := utl_smtp.open_connection(mailhost, 25);
msg:= ‘Fecha: ‘ || to_char( SYSDATE, ‘dd/mm/yyyy hh24:mi:ss’ ) || crlf ||
‘Origen: <‘||origen_wk||’>’ || crlf ||
‘Asunto: ‘||asunto_wk || crlf ||
‘Para: ‘||destino_wk || crlf ||
” || crlf || mensaje_wk;utl_smtp.helo(mail_conn, mailhost);
utl_smtp.mail(mail_conn, origen_wk);
utl_smtp.rcpt(mail_conn, destino_wk);
utl_smtp.data(mail_conn, msg);
utl_smtp.quit(mail_conn);
 
EXCEPTION
WHEN OTHERS THEN
 
 message (‘Ocurrió un error enviando : de ‘ || origen_wk||’ a ‘||destino_wk||’ subj: ‘||asunto_wk||’ mensaje: ‘||mensaje_wk||’ host: ‘||host_wk); 
END; 

Finalmente, en el trigger “when-button-pressed” del boton rotulado “Enviar” que aparece en la imagen, colocar el siguiente código plsql

EnviarMail(:bloque_mail.origen, :bloque_mail.destino, :bloque_mail.host, :bloque_mail.asunto, :bloque_mail.mensaje);

Como se puede ver, es breve y fácil programar la funcionalidad de un formulario que nos ayude con el envío de correos en nuestra Organización. Este ejemplo funciona correctamente para las versiones de developer 6i en adelante.

Elaborado por: Arturo Tocarruncho T

Leave a Reply