从Oracle存储过程Oracle 11g发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Oracle存储过程Oracle 11g发送邮件相关的知识,希望对你有一定的参考价值。

我正在尝试使用utl_mail发送邮件,并使用端口25或587发送smtp服务器smtp.gmail.com。

如果我使用端口25,获取错误,必须首先使用STARTTLS命令,而对于587,它将进入无限循环。

我的代码片段如下

create or replace 
PROCEDURE TEST_UTL_MAIL AS 
BEGIN
  utl_mail.send(
   sender => 'xxx@gmail.com',
    recipients => 'xxx@gmail.com',
   subject => 'Testing utl_mail',
    message => 'The receipt of this email means'
 );
 EXCEPTION
  WHEN OTHERS THEN
  raise_application_error(-20001,'The following error has occured: ' || sqlerrm);
   END;

任何帮助都感激不尽。

答案

您可能有访问控制列表问题。代码报告的错误是什么? 您也可以提供此查询的输出(您需要提供用户参数): SELECT host, lower_port, upper_port, acl, DECODE( DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, '&USER', 'connect'), 1, 'GRANTED', 0, 'DENIED', null) privilege FROM dba_network_acls ;

以上是关于从Oracle存储过程Oracle 11g发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

Oracle发送邮件存储过程

Oracle 数据库中的存储过程 (11g)

Oracle 11g ACL访问控制(11g的新玩意)

Oracle 存储过程 - 也许 10g 和 11g 之间的区别?

存储过程中的光标完成并卡住(Oracle Linux VM 上的 Oracle 11g)

oracle 11g 带触发器的存储过程