ORACLE UTL_MAIL 发送Email 无附件 有附件

【那些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 :=
  '
  

Dear XXX,

' || v_message || '

Thanks and Regards

'; --有文本附件的 SYS.UTL_MAIL.SEND_ATTACH_VARCHAR2( sender => 'test@'||SYS_CONTEXT('USERENV', 'SERVER_HOST')||'.test.com', recipients => '[email protected]', 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 => '[email protected]', 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 无附件 有附件)