Existen muchas maneras de implementar el envío de emails a través de una Base de Datos Oracle, una de ellas es mediante el uso del paquete UTL_MAIL.
A continuación les mostraré una manera muy sencilla y práctica de configurarlo y utilizarlo:
1.- Conectarse a la BD a través de SQL*PLUS como SYSDBA por ejemplo:
$ sqlplus '/ as sysdba'
2.- Crear los objetos necesarios en la base de datos:
SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvmail.plb
3.- Definir un servidor de correos dentro del archivo de parámetros de la instancia oracle:
SQL> alter system set smtp_out_server = 'servidor_de_correo.dominio.com:25' scope=both;
Nota:
.- La instancia debe estar usando un spfile, sino debe hacer los cambios en el init.ora adicionalmente, para que los cambios queden fijos.
.- 25 es el puerto por defecto del smtp.
.- También puede colocar la dirección IP del servidor en vez del hostname, por ejemplo:
smtp_out_server = '172.5.90.165:25'
Para enviar el mail
1.- Conectarse a SQL*PLUS:
$ sqlplus '/ as sysdba'
2.- exec utl_mail.send( sender=>'direccion@dominio.com', recipients=>'direccion@dominio.com', subject=>'Probando UTL_MAIL', message=>'Esto es una prueba' );
3.- Revisar el inbox o carpeta de entrada del correo electrónico para verificar la llegada del correo.
Nota: Si desea que otros usuarios puedan enviar también correos desde la base de datos, entonces deberá conceder la permisología correspondiente, por ejemplo:
grant execute on utl_mail to usuario;
Saludos