我试图配置我的系统使用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
请帮忙!
答案 0 :(得分:3)
您的SMTP服务器似乎需要加密连接。 UTL_MAIL
旨在简化用于为基本SMTP服务器发送邮件的API。它不支持SMTP协议定义的全套选项。我不相信它支持TLS。
假设您使用的是11.2,您需要使用UTL_SMTP套餐,并且在设置连接时需要拨打STARTTLS function。