Comment envoyer un mail en 10G
Cette option est disponible à partir d’Oracle 10g et remplace UTl_SMTP présent dans les versions inférieures.
Pour envoyer un mail il suffit de mettre en place le package, de paramétrer la base et enfin de se servir du package UTL_MAIL :
Installation des packages ( manipulation à effectué connecté en sys) :
Ø @$ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql Package created. Synonym created. SQL> |
Ø @$ORACLE_HOME/rdbms/admin/prvtmail.plb
SQL> @$ORACLE_HOME/rdbms/admin/prvtmail.plb Package body created. No errors. |
Comme l’installation a été effectué avec le super user sys il faut donner le privilège à tout le monde
Grant execute on utl_mail to public |
|
Il faut positionner le paramètre d’initialisation SMTP_OUT_SERVER
Ainsi :
SMTP_OUT_SERVER ='XXX.XX.X.X' |
Ce paramètre ne peut pas être modifié en dynamique .
SQL> alter system set SMTP_OUT_SERVER ='XXX.XX.X.X'; alter system set SMTP_OUT_SERVER ='XXX.XX.X.X' * ERREUR à la ligne 1 : ORA-02095: specified initialization parameter cannot be modified |
Il faut donc démarrer la base en INIT.ORA et régénérer un SPFILE
Création du Spfile :
SQL> create spfile='/ora/data/SAGE/admin/pfile/spfileSAGE.ora' from pfile='/ora/data/SAGE/admin/pfile/initSAGE.ora' ; File created. |
Puis un arrêt redémarrage de la base s’impose .
Ici tout les codes et exemples données ont été testés .
begin UTL_MAIL.send(sender => 'j_zouaghi@yahoo.fr', recipients => 'jaouad.zouaghi@gmail.com', cc => NULL, bcc => NULL, subject => 'subj', message => 'Test DVp ‘); end; / |
Détail du package
begin UTL_MAIL.send_attach_raw (sender => 'j_zouaghi@yahoo.fr', recipients => 'jaouad.zouaghi@gmail.com', subject => 'subj', attachment => HEXTORAW('616262646566C2AA'), message => 'Tatat yoyoyoyoyoyoyoyoyoy', att_filename => 'os.sql'); end; |