ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle Application Server套件 » 如何通过oracle发邮件

标题: [精华] 如何通过oracle发邮件
离线 wzy25
黑骑士



精华贴数 34
个人空间 0
技术积分 32800 (24)
社区积分 564 (1313)
注册日期 2001-12-14
论坛徽章:31
现任管理团队成员ITPUB元老管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念月度精华徽章ITPUB北京香山2007年会纪念徽章
管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章授权会员2008年新春纪念徽章生肖徽章2007版:鸡

发表于 2007-2-28 12:21 
如何通过oracle发邮件

我们经常需要对数据库做一些监控,同时希望监控能够自动以邮件的方式提醒我们,那么在oracle里面如何实现呢?

通过下面这个小的procedure来实现,即可。


__________________
wrong_x@hotmail.com
http://wzy25.itpub.net
提供保险核心业务系统咨询,评估业务。提供上海北京及北京周边地区oracle db,oracle as,weblogic技术支持,培训
只看该作者    顶部
离线 wzy25
黑骑士



精华贴数 34
个人空间 0
技术积分 32800 (24)
社区积分 564 (1313)
注册日期 2001-12-14
论坛徽章:31
现任管理团队成员ITPUB元老管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念月度精华徽章ITPUB北京香山2007年会纪念徽章
管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章授权会员2008年新春纪念徽章生肖徽章2007版:鸡

发表于 2007-2-28 12:22 
create or replace procedure p_send_mail(send_to in varchar2,
from_where varchar2,subject varchar, message varchar2 ) is

conn utl_smtp.connection;
crlf VARCHAR2( 2 ):= CHR( 13 ) || CHR( 10 );
mesg VARCHAR2( 4000 );

begin



conn := utl_smtp.open_connection('10.1.10.2'); --mail server
utl_smtp.helo(conn, 'test.com');
utl_smtp.mail(conn, from_where);
utl_smtp.rcpt(conn, send_to);


utl_smtp.open_data(conn);
utl_smtp.write_data(conn, 'From: '|| from_where || utl_tcp.CRLF);
utl_smtp.write_data(conn, 'To: ' || send_to||utl_tcp.CRLF);
utl_smtp.write_data(conn, 'Subject: ' || subject|| utl_tcp.CRLF);
utl_smtp.write_data(conn, 'Content-Type: text/plain; Charset=GB2312' || utl_tcp.CRLF);
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(utl_tcp.CRLF || message)); --转换为中文
utl_smtp.close_data(conn);
utl_smtp.quit(conn);

EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
utl_smtp.quit(conn);
raise_application_error(-20000,
'Failed to send mail due to the following error: ' || sqlerrm);

end p_send_mail;


__________________
wrong_x@hotmail.com
http://wzy25.itpub.net
提供保险核心业务系统咨询,评估业务。提供上海北京及北京周边地区oracle db,oracle as,weblogic技术支持,培训
只看该作者    顶部
离线 千年蝴蝶



来自 jiangxi
精华贴数 0
个人空间 0
技术积分 7 (121921)
社区积分 2 (32214)
注册日期 2008-3-28
论坛徽章:0
      
      

发表于 2008-4-6 09:39 
怎么我看不懂呀
也不解释及时


只看该作者    顶部
离线 randoming
阳光少年


来自 在那桃花盛开的地方...
精华贴数 0
个人空间 390
技术积分 3357 (438)
社区积分 32064 (28)
注册日期 2007-8-7
论坛徽章:37
2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:皮划艇激流回旋   
      

发表于 2008-4-15 13:02 
好东西啊


__________________
Randoming
MSN:
Randoming@live.cn
----------------------------
拥抱阳光...我想...我拼搏
想成为项目经理吗?
先看看大家有没有站在一个项目经理的角度来思考问题...

祈祷...让世界找不到黑暗 幸福像花开放......

Randoming的个人空间
只看该作者    顶部
离线 huqingxing
中级会员


精华贴数 0
个人空间 0
技术积分 624 (3055)
社区积分 17 (8256)
注册日期 2005-10-7
论坛徽章:2
授权会员2008北京奥运纪念徽章:手球    
      

发表于 2008-4-15 22:43 
加上一点:如果监控的结果是通过JOB来发mail的,那么小心那个发mail的JOB,可能会当掉,
最好能监控DB的log。


__________________
qingxing_h@126.commsn:qingxing_h@126.comqq:158294266
只看该作者    顶部
离线 caozixiang
闲云孤鹤


精华贴数 0
个人空间 0
技术积分 158 (11591)
社区积分 692 (1167)
注册日期 2007-10-22
论坛徽章:1
2008北京奥运纪念徽章:现代五项     
      

发表于 2008-4-16 14:51 
提供一个简单的,经测试通过,你可以继续扩展:
CREATE OR REPLACE PROCEDURE P_SEND_MAIL(P_MAILHOST     VARCHAR2,
                                        P_FROM_ADDRESS VARCHAR2,
                                        P_TO_ADDRESS   VARCHAR2,
                                        --P_FROM_USER    VARCHAR2,
                                        P_MESSAGE_TEXT VARCHAR2,
                                        P_RET          OUT NUMBER,
                                        P_ERRMSG       OUT VARCHAR2) IS
  MAIL_CONN UTL_SMTP.CONNECTION;
BEGIN
  MAIL_CONN := UTL_SMTP.OPEN_CONNECTION(P_MAILHOST, 25);
  UTL_SMTP.HELO(MAIL_CONN, P_MAILHOST);
  UTL_SMTP.MAIL(MAIL_CONN, P_FROM_ADDRESS);
  UTL_SMTP.RCPT(MAIL_CONN, P_TO_ADDRESS);
  UTL_SMTP.OPEN_DATA(MAIL_CONN);
  UTL_SMTP.WRITE_DATA(MAIL_CONN, P_MESSAGE_TEXT);
  UTL_SMTP.CLOSE_DATA(MAIL_CONN);
  P_RET := 0;
EXCEPTION
  WHEN OTHERS THEN
    P_RET    := SQLCODE;
    P_ERRMSG := SQLERRM;
END;


__________________
时光飞逝...
只看该作者    顶部
离线 randoming
阳光少年


来自 在那桃花盛开的地方...
精华贴数 0
个人空间 390
技术积分 3357 (438)
社区积分 32064 (28)
注册日期 2007-8-7
论坛徽章:37
2008北京奥运纪念徽章:皮划艇激流回旋2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:皮划艇激流回旋   
      

发表于 2008-4-18 08:59 
实在是比较有用的东西啊


__________________
Randoming
MSN:
Randoming@live.cn
----------------------------
拥抱阳光...我想...我拼搏
想成为项目经理吗?
先看看大家有没有站在一个项目经理的角度来思考问题...

祈祷...让世界找不到黑暗 幸福像花开放......

Randoming的个人空间
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问