您的位置:首页 > 数据库 > Oracle

Oracle学习笔记:利用utl_mail包发送email

2009-02-05 17:10 507 查看
utl_mail介绍

  utl_mail实用包为oracle10g中新增的用于发送email的工具。使用简单。

utl_mail安装、配置

  默认,oracle10g并不会安装该包。可以在sqlplus下通过运行以下脚本安装:

  step1: 通过sqlplus运行下面两个脚本文件

      {ORACLE_HOME}/RDBMS/Admin/utlmail.sql

      {ORACLE_HOME}/RDBMS/Admin/prvtmail.plb

  step2: 配置动态初始化参数 smtp_out_server=smtpserver:port[,smtpserver:port,.....]

      注意:该smtp服务器必须是普通的方式——发送邮件不需要认证账户信息,不是esmtp!这是很多人遇到的问题。

         而且可以配置多个smtp服务器,多么实用的功能。

  step3:非常重要的技巧,配置smtp服务器的邮件转发,可以使你的局域网smtp服务器发送internet邮件

  step4:记住需要对普通用户赋予可执行utl_mail包的权限

      例如:grant execute on utl_mail to public;

utl_mail使用

  utl_mail.send(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority);

   注意:可以通过设置mime_type来解决中文乱码的问题:mime_type='text/plain;charset=UTF-8'

  utl_mail.send_attach_raw   

  和

  utl_mail.send_attach_varchar2(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority,
attachment => :attachment,
att_inline => att_inline,
att_mime_type => :att_mime_type,
att_filename => :att_filename);

    用法和utl_mail.send类似的。只是指示 attachment 的内容以附件的形式发送。

    可以给这个附件内容指定一个 att_filename,其实必须要给一个文件名,否则在邮件客户端里就和正文消息混在一起了!

  注意点:sender、recipients、subject 、[attachment ]是必须字段!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: