Oracle 存储过程中发送邮件,并支持用户验证 中文标题和内容

本文介绍了一个在Oracle存储过程中使用UTL_SMTP包发送邮件的实现,包括支持用户验证的邮件服务器,确保中文标题和内容不出现乱码。详细讲述了在不同环境中如何正确调用和避免常见错误,如SMTP错误503。存储过程已在Oracle 9.2.0(Solaris,ZHS16GBK字符集)中测试通过。
摘要由CSDN通过智能技术生成
               

 在 Oracle的存储过程执行中,我们可能希望它本身能完成邮件发送执行的结果,特别是在捕获到了异常时。不能总是依赖于调用存储过程的外部程序--调用后,根据出口参数,发送执行结果。这一需求更迫切的表现在非人工参与的 Oracle Job 调用存储过程的情况下。

所幸,Oracle为我们提供了发送邮件的工具包 UTL_SMTP,它最早出现在 Oracle 8.1.7版本中。下面是我从网络上搜索相关资料后、综合整理、多处修正、数次调试、排除万难而写出的一个发送邮件的存储过程。可支持需用户验证的邮件服务器,中文标题和中文内容无乱码,只还未支持附件的发送,相信这方面应用较少,需要的话再 Google 一下,且文后参考中有相应的链接。

01. CREATE OR REPLACE PROCEDURE send_mail(
02.      p_recipient VARCHAR2, -- 邮件接收人
03.      p_subject   VARCHAR2, -- 邮件标题
04.      p_message   VARCHAR2  -- 邮件正文
05. )
06. IS
07.  
08.     --下面四个变量请根据实际邮件服务器进行赋值
09.     v_mailhost  VARCHAR2(30) :=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值