Tuesday, April 13, 2010

Send mail notification as HTML ATTACHMENT By Pl/Sql package

CREATE OR REPLACE PACKAGE Xxm_Send_Attachment_Email IS
/*******************************************************************************/
/* Procedure : XXM_SEND_ATTACHMENT_EMAIL */
/* Description : To send mail notification AS HTML ATTACHMENT */
/* Called By : */
/* */
/* Modificaton Log */
/* Date Author Description */
/* ---------- ------------------ --------------------------------------- */
/* 22-MAY-06 Ajit Raut Initial Release */
/* */
/*******************************************************************************/

PROCEDURE SEND_EMAIL (SUBJECT VARCHAR2
, TO_USERID VARCHAR2 := NULL
, V_BODY1 VARCHAR2 := NULL
, FROM_NAME VARCHAR2 := NULL
, TO_NAME VARCHAR2 := NULL
, CONTENT_TYPE VARCHAR2 := NULL);


END Xxm_Send_Attachment_Email;
/
----------------------------
CREATE OR REPLACE PACKAGE BODY Xxm_Send_Attachment_Email IS
/*******************************************************************************/
/* Procedure : XXM_SEND_ATTACHMENT_EMAIL */
/* Description : To send mail notification AS HTML ATTACHMENT */
/* Called By : */
/* */
/* Modificaton Log */
/* Date Author Description */
/* ---------- ------------------ --------------------------------------- */
/* 22-MAY-06 Ajit Raut Initial Release */
/* */
/*******************************************************************************/
PROCEDURE SEND_EMAIL(SUBJECT VARCHAR2
, TO_USERID VARCHAR2 := NULL
, V_BODY1 VARCHAR2 := NULL
, FROM_NAME VARCHAR2 := NULL
, TO_NAME VARCHAR2 := NULL
, CONTENT_TYPE VARCHAR2 := NULL) IS

c utl_smtp.connection;
from_userid VARCHAR2(40) :='ajitraut@yahoo.com';-- 'pil_ajit.raut@pusparun.co.in';--'webmaster@yourcompany.com';
send_user VARCHAR2(40);
from_domain VARCHAR2(200) :=SUBSTR(from_userid,INSTR(from_userid,'@')+1);-- SUBSTR('pil_ajit.raut@pusparun.co.in',INSTR('pil_ajit.raut@pusparun.co.in','@')+1);--SUBSTR(from_userid,INSTR(from_userid,'@')+1);
smtp_server VARCHAR2(50) :='10.1.1.143';-- 'YOUR_SERVER_NAME';
my_body VARCHAR2(32000);
phead2 VARCHAR2(1000);
phead22 VARCHAR2(1000);
v_body VARCHAR2(10000);
v_crlf VARCHAR2(2) :=CHR(13)||CHR(10);
v_lines VARCHAR2(1000);


PROCEDURE header(name VARCHAR2, value VARCHAR2) IS
BEGIN utl_smtp.write_data(c, name || ': ' || value || utl_tcp.CRLF);
END;
BEGIN
send_user := to_userid;
my_body := v_body1;
c := utl_smtp.open_connection(smtp_server); utl_smtp.helo(c, from_domain );
utl_smtp.mail(c, from_userid );
utl_smtp.rcpt(c, send_user );
utl_smtp.open_data(c);
header('From','"'||NVL(from_name,from_userid)||'" <'||from_userid||'>'); header('To','"'||NVL(to_name,to_userid)||'" <'||to_userid||'>');
header('Subject', subject ); header('Content-Type', NVL(content_type,'text/html'));
utl_smtp.write_data(c, utl_tcp.CRLF || my_body );
utl_smtp.close_data(c); utl_smtp.quit(c);
EXCEPTION WHEN utl_smtp.transient_error
OR utl_smtp.permanent_error
THEN utl_smtp.quit(c);
END SEND_EMAIL;
END Xxm_Send_Attachment_Email;
/

No comments: