UTL_MAIL 包

为了在PL/SQL中,提供email发送的支持,开发UTL_MAIL包,提供一组API,实现发送简单的邮件和包含附件的邮件。

28.1 相关方法

  1. INIT

包需要的配置信息。

语法如下:

Procedure init(

	smtp_server varchar2(128),

	smtp_port int default 25,

	sender varchar2(128),

	password varchar2(128)

) ;

参数详解

  • smtp_server smtp服务器的地址,如smtp.163.com。
  • smtp_portsmtp的端口号,一般都是25。
  • sender 设置发送的邮箱,也就是要认证的邮箱。
  • password设置发送邮箱的密码。
  1. SEND

发送message的信息。

语法如下:

PROCEDURE SEND (

	sender in varchar2,

	recipients in varchar2,

	cc in varchar2 default null,

	bcc in varchar2 default null,

	subject in varchar2 default null,

	message in varchar2 ,

	mime_type in varchar2 default 'text/plain; charset=us-ascii',

	priority in int default null

);

参数详解

  • sender发送的邮箱地址。
  • recipients接收邮件的地址。
  • CC抄送的邮件的地址。
  • BCC秘密抄送的邮件的地址。
  • subject邮件的主题。
  • message邮件的内容,正文部分。
  • mime_type邮件的内容格式,default is 'text/plain; charset=us-ascii'。
  • priority优先级(不用设置)。
  1. SEND_ATTACH_RAW

发送带附件的邮件。

语法如下:

PROCEDURE SEND_ATTACH_RAW (

	Sender in varchar2,

	recipients in varchar2,

	cc in varchar2 default null,

	bcc in varchar2 default null,

	subject in varchar2 default null,

	message in varchar2 default null,

	mime_type in varchar2 default 'text/plain; charset=us-ascii',

	priority in int default null,

	attachment in blob,

	att_inline in boolean default true,

	att_mime_type in varchar2 default 'application/octet-stream',

	att_filename in varchar2 default null

);

参数详解

  • sender 发送的邮箱地址。
  • recipients接收邮件的地址。
  • CC抄送的邮件的地址。
  • BCC秘密抄送的邮件的地址。
  • subject邮件的主题。
  • message邮件的内容,正文部分。
  • mime_type邮件的内容格式:文本、html等。默认为'text/plain;charset=us-ascii'。
  • priority优先级(不用设置)。
  • attachment附件。
  • att_inline附件在文件中显示是否使用下划线。
  • att_mime_type邮件附件的类型,如文本。
  • att_filename附件的文件名。

28.2 举例说明

使用包内的过程和函数之前,如果还未创建过系统包。请先调用系统过程创建系统包。

SP_CREATE_SYSTEM_PACKAGES (1,'UTL_MAIL');

例在使用该包前,需要先初始化该包,调用init函数,设置使用smtp服务器,端口(一般默认25,设置用于认证的邮箱,认证的密码。设置完后,就可以使用包的函数:send和send_attach_raw。

/*初始化包的函数*/

UTL_MAIL.INIT(

	smtp.163.com', //smtp 服务器

	25, //端口

	'utl_mail\@163.com', //认证的邮箱

	'dm_utl_mail' //认证邮箱的密码

);

/*发送不带附件的邮件*/


UTL_MAIL.SEND(

	'utl_mail\@163.com', //发送的邮箱地址

	'recipient\@dameng.com', //接受的邮箱地址

	'',

	'',

	'test', //主题

	'this is a mail for test .', //正文

	'text/plain; charset=us-ascii',//类型

	3

);

	/* 发送带附件的邮件 */

UTL_MAIL.SEND_ATTACH_RAW(

	'utl_mail@163.com',

	'recipient@dameng.com',

	'',

	'',

	'test',

	'this is a mail for test .',

	'text/plain; charset=us-ascii',

	3,  						

	//附件二进制的内容

     hexiTORAW('1234567890564531813169434196431651398320843126465465465465461564'),

	FALSE,

	'application/octet-stream', //附件的类型

	'attach.zip' //附件的名字

);
微信扫码
分享文档
扫一扫
联系客服