美文网首页
ORACLE UTL_MAIL 发送Email 无附件 有附件

ORACLE UTL_MAIL 发送Email 无附件 有附件

作者: Pandapp | 来源:发表于2020-03-25 16:29 被阅读0次

【那些ORCALE DB可以做到的事】
如果你的DB是 ORACLE 10g 以上 那么就可以使用 package UTL_MAIL 提供的功能, 发邮件只需要一步就可以做到。 但是前期需要做一些DB的setting,比如grant permission,设置ACL之类的,这里就没有仔细研究setting了,下面来介绍一下我们怎么用
UTL_MAIL提供三种方法发送Email

  • SEND 普通发送,无附件

  • SEND_ATTACH_VARCHAR2 字符附件 (我理解就是可以有txt文本的附件)


    txt附件.png
  • SEND_ATTACH_RAW 字节附件 (还没有试过)

-- 在PROCEDURE中的实现邮件的发送
-- v_message 邮件内容
-- v_subject 邮件标题
-- v_att_message 附件内容

PROCEDURE EMAIL_SP(v_message varchar2,v_subject varchar2,v_att_message varchar2) IS
  v_all_message varchar2(20000);
  BEGIN
  v_all_message :=
  '<font face="Calibri">
  <p>Dear XXX,</p>
  ' || v_message ||
  '<p>Thanks and Regards</p>';

  --有文本附件的
  SYS.UTL_MAIL.SEND_ATTACH_VARCHAR2(
                    sender     => 'test@'||SYS_CONTEXT('USERENV',  'SERVER_HOST')||'.test.com',
                    recipients => 'test@test.com',
                    subject    => v_subject,
                    MESSAGE    => v_all_message,
                    mime_type  => 'text/html; charset=us-ascii',
                    attachment => v_att_message);

  --没有附件的
  SYS.UTL_MAIL.SEND(sender     =>  'test@'||SYS_CONTEXT('USERENV', 'SERVER_HOST')||'.test.com',
                    recipients => 'test@test.com',
                    subject    => v_subject,
                    MESSAGE    => v_all_message,
                    mime_type  => 'text/html; charset=us-ascii');
END EMAIL_SP;

为了拿到环境的server host来区别是在测试环境还是生产环境发送出来的邮件提醒

SYS_CONTEXT('USERENV', 'SERVER_HOST') 

官方文档:
ORACLE DOCS

相关文章

网友评论

      本文标题:ORACLE UTL_MAIL 发送Email 无附件 有附件

      本文链接:https://www.haomeiwen.com/subject/bjlxuhtx.html