利用utl_smtp发送邮件的时候,会出现如下错误,具体方法如下:
ORA-20001: The send mail was error
ORA-24247: network access denied by access control list(ACL)
解决方法如下:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'email_server_permissions.xml',
description => 'Enables network permissions for the e-mail server',
principal => 'MON',
is_grant => TRUE,
privilege => 'connect');
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'email_server_permissions.xml',
host => 'smtp.xxxxx.com', --SMTP服务器地址
lower_port => 25,
upper_port => NULL);
COMMIT;
END;
/
SELECT host, lower_port, upper_port, acl FROM dba_network_acls;
SELECT acl,principal, privilege, is_grant, TO_CHAR(start_date, 'DD-MON-YYYY') AS start_date, TO_CHAR(end_date, 'DD-MON-YYYY') AS end_date
FROM dba_network_acl_privileges;
BEGIN
DBMS_NETWORK_ACL_ADMIN.drop_acl(acl => 'email_server_permissions.xml');
COMMIT;
END;
/
ORA-20001: The send mail was error
ORA-24247: network access denied by access control list(ACL)
解决方法如下:
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'email_server_permissions.xml',
description => 'Enables network permissions for the e-mail server',
principal => 'MON',
is_grant => TRUE,
privilege => 'connect');
END;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.assign_acl (
acl => 'email_server_permissions.xml',
host => 'smtp.xxxxx.com', --SMTP服务器地址
lower_port => 25,
upper_port => NULL);
COMMIT;
END;
/
SELECT host, lower_port, upper_port, acl FROM dba_network_acls;
SELECT acl,principal, privilege, is_grant, TO_CHAR(start_date, 'DD-MON-YYYY') AS start_date, TO_CHAR(end_date, 'DD-MON-YYYY') AS end_date
FROM dba_network_acl_privileges;
BEGIN
DBMS_NETWORK_ACL_ADMIN.drop_acl(acl => 'email_server_permissions.xml');
COMMIT;
END;
/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24237320/viewspace-2071990/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24237320/viewspace-2071990/