EBS 自定义邮件通知
事实上Oracle 数据库本身就有提供UTL_SIMPLE(ORACLE10g
以后变成UTL_MAIL)包来实现邮件发送的功能,利用这个包可以开发出更灵活东西来。首先要安装
utl_smtp.sql、utl_tcp.sql 这两个包。
①发送带有URL 邮件代码
declare
p_sender varchar2(30) := 'cho @abc.cn';
p_recipient varchar2(30) := 'jia @abc.cn';
p_subject varchar2(50) := '使用PL/SQL 发送邮件';
p_body long := '这是邮件正文内容<a href="http://erp.oracle.cn ">进行ORACLE ERP
</a>';
mail_conn utl_smtp.connection;
mail_host varchar2(15) := 'mail.hek.cn';
user_name varchar2(156) := 'chongdong_wang@hek.cn';
user_pwd varchar2(156) := '***';
begin
--创建一个TCP MAIL 连接
mail_conn := utl_smtp.open_connection(mail_host, 25);
--ehlo 与helo 的区别:是否对邮件主机进行登陆认证
--utl_smtp.helo(main_conn,mail_host);
utl_smtp.ehlo(mail_conn, mail_host);
--登陆认证语句
utl_smtp.command(mail_conn, 'AUTH LOGIN');
--对用户及密码进行加密
utl_smtp.command(mail_conn,
demo_base64.encode(utl_raw.cast_to_raw(user_name)));
utl_smtp.command(mail_conn,
demo_base64.encode(utl_raw.cast_to_raw(user_pwd)));
--指定发件人
utl_smtp.mail(mail_conn, p_sender);
--指定收件人
utl_smtp.rcpt(mail_conn, p_recipient);
--开始写邮件内容
utl_smtp.open_data(mail_conn);
--指定显示的发件人,注意这边的显示的发件人可以上面指定发件人不同
--这实际上是SMTP 协议的缺陷,也是造成垃圾邮件主要原因
utl_smtp.write_data(mail_conn, 'From:' || p_sender || utl_tcp.CRLF);
utl_smtp.write_data(mail_co