配置UTL_MAIL包先决条件

时间:2014-05-20 15:21:25

标签: oracle plsql oracle11g

我试图配置我的系统使用UTL_MAIL包发送邮件但没有运气..我读到我需要先配置ACL。因此我做到了。但即使这样做也不行。

SELECT * FROM dba_network_acls;

begin
  dbms_network_acl_admin.create_acl (
    acl         => 'utl_http.xml',
    description => 'HTTP Access',
    principal   => 'HR',
    is_grant    => TRUE,
    privilege   => 'connect',
    start_date  => null,
    end_date    => null
  );
  dbms_network_acl_admin.add_privilege (
    acl        => 'utl_http.xml',
    principal  => 'HR',
    is_grant   => TRUE,
    privilege  => 'resolve',
    start_date => null,
    end_date   => null
  );
  dbms_network_acl_admin.assign_acl (
    acl        => 'utl_http.xml',
    host       => 'smtp.gmail.com',
    lower_port => 25,  --- Gmail SMTP server.
    upper_port => 25
  );
  commit;
end;
/

我收到错误

ORA-29279:SMTP永久性错误:530 5.7.0必须先发出STARTTLS命令。 ei4sm3659171pbb.42 - gsmtp ORA-06512:在“SYS.UTL_MAIL”,第654行 ORA-06512:在“SYS.UTL_MAIL”,第671行 ORA-06512:第2行 29279. 00000 - “SMTP永久错误:%s” *原因:发生SMTP永久性错误。 *操作:更正错误并重试SMTP操作。

我已经执行了以下命令

CONN sys / password AS SYSDBA

@ $ ORACLE_HOME / RDBMS /管理/ utlmail.sql

@ $ ORACLE_HOME / RDBMS /管理/ prvtmail.plb

请帮忙!

1 个答案:

答案 0 :(得分:3)

您的SMTP服务器似乎需要加密连接。 UTL_MAIL旨在简化用于为基本SMTP服务器发送邮件的API。它不支持SMTP协议定义的全套选项。我不相信它支持TLS。

假设您使用的是11.2,您需要使用UTL_SMTP套餐,并且在设置连接时需要拨打STARTTLS function