Wednesday, October 22, 2008

Sending E-mail - Oracle

Sending e-mail from within Oracle

Many systems have online e-mail alerts and Oracle provides the utl_smtp PL/SQL package
I have post sample procedure for Sending e-mail from within Oracle.

$sqlplus '/as sysdba'
SQL>CREATE OR REPLACE PROCEDURE SYS.send_email (P_SENDER in varchar2,
P_RECIPIENT in varchar2,
P_SUBJECT in varchar2,
P_MESSAGE in varchar2)
is
mailhost varchar2(30) := '127.0.0.1';
mail_conn utl_smtp.connection;
crlf varchar2(2):= CHR(13)CHR(10);
mesg varchar2(4000);
BEGIN
mail_conn := utl_smtp.open_connection(mailhost,25);
mesg:= 'Subject: 'P_SUBJECTcrlfP_MESSAGE;
utl_smtp.helo(mail_conn,mailhost);
utl_smtp.mail(mail_conn,P_SENDER);
utl_smtp.rcpt(mail_conn,P_RECIPIENT);
utl_smtp.data(mail_conn,mesg);
utl_smtp.quit(mail_conn);
END send_email;
/

exec send_email('sender email id ','recipient email id ','subject ','Message');
For Test Perpose..
sender email id = sender@gmail.com
recipient email id =recipient@gmail.com
subject = Oracle Alert E-mail
Message = Test Perpose - DBA
SQL>exec send_email('sender@gmail.com','recipient.gmail.com','Oracle Alert E-Mail','Test Perpose - DBA');
PL/SQL procedure successfully completed.

Check your email...

No comments: