首页 技术 正文
技术 2022年11月15日
0 收藏 520 点赞 4,211 浏览 2168 个字

首先,创建一个 ACL:

oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件begin
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件dbms_network_acl_admin.create_acl (
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件acl             => ‘utlpkg.xml’, —创建的访问控制列表名字
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件description     => ‘Normal Access’,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件principal       => ‘CONNECT’,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件is_grant        => TRUE,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件privilege       => ‘connect’,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件start_date      => null,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件end_date        => null
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件);
end;

查看ACL是否已增加

SELECT *  FROM resource_view WHERE any_path like ‘/sys/acls/%.xml’;

分配主机信息:

oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件begin
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件dbms_network_acl_admin.assign_acl (
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件acl => ‘utlpkg.xml’,
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件host => ‘mail.whty.com.cn’, –可访问服务器的地址
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件lower_port => 25,  —最低端口
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件upper_port => 25); –最高端口
end;

建立存储过程

oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件CREATE OR REPLACE PROCEDURE send_mail(
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件p_recipient VARCHAR2, — 邮件接收人
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件p_subject VARCHAR2, — 邮件标题
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件p_message VARCHAR2– 邮件正文
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件)
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件IS
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件–下面四个变量请根据实际邮件服务器进行赋值
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_mailhost VARCHAR2(30) := ‘mail.whty.com.cn’; –SMTP服务器地址
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_user VARCHAR2(30) := ‘chengxf’; –登录SMTP服务器的用户名
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_pass VARCHAR2(20) := ‘TYtx0617’; –登录SMTP服务器的密码
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_sender VARCHAR2(50) := ‘chengxf@whty.com.cn’; –发送者邮箱,一般与 ps_user 对应
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_conn UTL_SMTP.connection; –到邮件服务器的连接
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_msg varchar2(4000); –邮件内容
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件BEGIN
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_conn := UTL_SMTP.open_connection(v_mailhost, 25);
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.ehlo(v_conn, v_mailhost); –是用 ehlo() 而不是 helo() 函数
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件–否则会报:ORA-29279: SMTP 永久性错误: 503 5.5.2 Send hello first.
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.command(v_conn, ‘AUTH LOGIN’); — smtp服务器登录校验
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_user))));
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_pass))));
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.mail(v_conn, ‘<‘||v_sender||’>’); –设置发件人
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.rcpt(v_conn, ‘<‘||p_recipient||’>’); –设置收件人
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件— 创建要发送的邮件内容 注意报头信息和邮件正文之间要空一行
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件v_msg :=’Date:’|| TO_CHAR(SYSDATE, ‘yyyy mm dd hh24:mi:ss’)
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件|| UTL_TCP.CRLF || ‘From: ‘|| v_sender || ”
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件|| UTL_TCP.CRLF || ‘To: ‘ || p_recipient || ”
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件|| UTL_TCP.CRLF || ‘Subject: ‘ || p_subject
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件|| UTL_TCP.CRLF || UTL_TCP.CRLF — 这前面是报头信息
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件|| p_message; — 这个是邮件正文
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.open_data(v_conn); –打开流
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.write_raw_data(v_conn, UTL_RAW.cast_to_raw(v_msg)); –这样写标题和内容都能用中文
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.close_data(v_conn); –关闭流
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件UTL_SMTP.quit(v_conn); –关闭连接
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件EXCEPTION
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件WHEN OTHERS THEN
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件DBMS_OUTPUT.put_line(DBMS_UTILITY.format_error_stack);
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件DBMS_OUTPUT.put_line(DBMS_UTILITY.format_call_stack);
END send_mail; 

调用:

oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件begin
oracle 11g 新特性UTL_TCP、UTL_HTTP 和 UTL_SMTP程序包发邮件  send_mail(‘chengxf@whty.com.cn’,’TESt’,’oh,my gold’);
 end;

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,075
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,551
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,399
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,811
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,893