ORACLE UTL_MAIL 发送Email 无附件 有附件

2020-03-25  本文已影响0人  Pandapp

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

-- 在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

上一篇 下一篇

猜你喜欢

热点阅读