Oracle Package SendMail
来源:互联网 发布:ae cc 2015 mac注册机 编辑:程序博客网 时间:2024/05/22 17:41
===========================
create or replace package ygzhou.mailit as
type addresslist_tab is table of varchar2( 200 ) index by binary_integer;
procedure p_mailusers(to_list in varchar2,
cc_list in varchar2,
subj in varchar2,
body in varchar2
);
procedure p_mailgroups(to_list in varchar2,
cc_list in varchar2,
subj in varchar2,
body in varchar2 );
end;
/
===================
create or replace package body ygzhou.mailit as
procedure p_mailusers( to_list in varchar2,
cc_list in varchar2,
subj in varchar2,
body in varchar2
)
is
v_sender varchar2(30):='ygzhou518@sae.com.hk';
v_mailserver varchar2(20):='10.10.1.168';
v_port number:=25;
v_conn utl_smtp.connection;
v_crlf varchar2(2):=chr(13)||chr(10);
v_mesg varchar2(4000);
v_usrname varchar2(30);
v_usraddr varchar2(100);
/*
create table ygzhou.cux_mailids(
user_alias varchar2(30 byte),
user_fname varchar2(100 byte),
user_email varchar2(100 byte),
user_group varchar2(30 byte)
);
*/
cursor get_list ( v_tempstr in varchar2 ) is
select user_fname, user_email
from cux_mailids
where user_alias like '%' || v_tempstr || '%'
and v_tempstr is not null;
addrlist addresslist_tab;
addrcnt binary_integer:= 0;
begin
if to_list is null then
raise_application_error( -20015, 'User not entered in CUX_MAILIDS' );
end if;
v_conn:= utl_smtp.open_connection(v_mailserver,v_port);
utl_smtp.helo(v_conn,v_mailserver);
utl_smtp.mail(v_conn,v_sender);
for listrec in get_list(to_list) loop
utl_smtp.rcpt(v_conn,listrec.user_email );
addrcnt:= addrcnt + 1;
addrlist( addrcnt ):= 'To: ' || listrec.user_fname ||
'<' || listrec.user_email || '>' || v_crlf;
end loop;
if addrcnt = 0 then
raise_application_error( -20016, 'No To: list generated' );
end if;
for listrec in get_list( cc_list ) loop
utl_smtp.rcpt(v_conn, listrec.user_email );
addrcnt:= addrcnt + 1;
addrlist( addrcnt ):= 'Cc: ' || listrec.user_fname ||
'<' || listrec.user_email || '>' || v_crlf;
end loop;
v_mesg:= 'Date: ' || to_char( sysdate, 'dd Mon yy hh24:mi:ss' ) || v_crlf ||
'From: Database Alert <' || v_sender || '>' || v_crlf ||
'Subject: ' || subj || v_crlf;
for i in 1 .. addrcnt loop
v_mesg:= v_mesg || addrlist( i );
end loop;
v_mesg:= v_mesg || '' ||v_crlf || body;
utl_smtp.data(v_conn,v_mesg );
utl_smtp.quit(v_conn );
end;
================================================================
procedure p_mailgroups( to_list in varchar2,
cc_list in varchar2,
subj in varchar2,
body in varchar2 )
is
v_sender varchar2(30):='ygzhou518@sae.com.hk';
v_mailserver varchar2(20):='10.10.1.168';
v_port number:=25;
v_conn utl_smtp.connection;
v_crlf varchar2(2):=chr(13)||chr(10);
v_mesg varchar2(4000);
v_usrname varchar2(30);
v_usraddr varchar2(100);
cursor get_list ( v_tempstr in varchar2 ) is
select user_fname, user_email
from cux_mailids
where user_group like '%' || v_tempstr || '%'
and v_tempstr is not null;
addrlist addresslist_tab;
addrcnt binary_integer:= 0;
begin
if to_list is null then
raise_application_error( -20015, 'Group not entered in CUX_MAILIDS' );
end if;
v_conn:= utl_smtp.open_connection(v_mailserver,v_port);
utl_smtp.helo(v_conn,v_mailserver);
utl_smtp.mail(v_conn,v_sender);
for listrec in get_list( to_list ) loop
utl_smtp.rcpt(v_conn, listrec.user_email );
addrcnt:= addrcnt + 1;
addrlist( addrcnt ):= 'To: ' || listrec.user_fname ||
'<' || listrec.user_email || '>' || v_crlf;
end loop;
if addrcnt = 0 then
raise_application_error( -20016, 'No To: list generated' );
end if;
for listrec in get_list( cc_list ) loop
utl_smtp.rcpt(v_conn,listrec.user_email );
addrcnt:= addrcnt + 1;
addrlist( addrcnt ):= 'Cc: ' || listrec.user_fname ||
'<' || listrec.user_email || '>' || v_crlf;
end loop;
v_mesg:= 'Date: ' || to_char( systimestamp, 'dd Mon yy hh24:mi:ss TZHTZM' ) || v_crlf ||
'From: Database Alert <' || v_sender || '>' || v_crlf ||
'Subject: ' || subj || v_crlf;
for i in 1 .. addrcnt loop
v_mesg:= v_mesg || addrlist( i );
end loop;
v_mesg:= v_mesg || '' || v_crlf || body;
utl_smtp.data(v_conn,v_mesg );
utl_smtp.quit(v_conn );
end;
end;
/
select * from monitor.cux_metric_value where metric_id = 1
and sample_value>=10
and rownum<=5;
commit;
create or replace trigger ygzhou.t_checkaas
after insert on ygzhou.cux_metric_value for each row
when (new.sample_value > 8 and new.metric_id = 1)
begin
mailit.p_mailgroups ('DBA','IT MANAGER',
'Warning: '|| :new.db_name|| ' - Average Active Sessions is '|| :new.sample_value,' Database: ' || :new.db_name|| chr (13)
|| ' Average Active Sessions: '|| :new.sample_value|| chr (13)
|| ' Date: '|| to_char (:new.sample_time, 'yyyy-mm-dd hh24:mi:ss')|| chr (13)
);
end;
/
- Oracle Package SendMail
- oracle package
- ORACLE Package
- Oracle Package
- Oracle Package
- Oracle Package
- Oracle Package
- ORacle Package
- ORACLE PACKAGE AND PACKAGE BODY
- Sendmail
- Sendmail
- SendMail
- sendMail
- sendMail
- sendmail
- SendMail
- sendmail
- Sendmail
- db2 专用工具 dbvisualizer9.1.1版本设置sql自动提示
- 使用Handler定时和使用AlarmManager定时的区别
- 建立使用Cas进行单点登录的应用
- HBase总结(十七)Ganglia监控hadoop、hbase集群
- 5.解决UltraEdit在无网线情况下连接不到虚拟机上的问题,回环网卡设置
- Oracle Package SendMail
- 正则表达式的用法
- 学生作业
- Android 编程下帧动画在 Activity 启动时自动运行的几种方式
- Java线程池使用说明
- String类的实现
- 学生作业
- 详解rsync算法--如何减少同步文件时的网络传输量
- Java中Heap与Stack的区别