在我的应用程序中,我有表用户,其中每个用户都有一个电子邮件地址。我创建了一个发送邮件流程,因此用户可以相互接收和发送电子邮件,当我按下按钮时激活但我不知道邮件是否已发送,因为ORA-24247: network access denied by access control list (ACL)
即使我创建了 ACL 也会出错我允许了。我正在使用顶点 4.0.2
问问题
850 次
1 回答
1
Oracle 电子邮件需要设置访问控制列表 (ACL) 以允许 Oracle 连接到您的邮件服务器。下面是一些示例代码,它们将创建一个 ACL 以允许 SCHEMA1 和 SCHEMA2 使用 UTL_SMTP 和 UTL_MAIL 包。
- L_ACL 是您选择的字符串
- SCHEMA1 和 SCHEMA2 是将发送电子邮件的模式
g_mailhost 是必须已设置为转发邮件的电子邮件服务器的名称。
DECLARE l_acl VARCHAR2 (30) := 'utl_smtp.xml'; l_principal VARCHAR2 (30) := 'SCHEMA1'; l_principal2 VARCHAR2 (30) := 'SCHEMA2'; g_mailhost VARCHAR2 (60) := 'mail.mydomain.com'; BEGIN DBMS_NETWORK_ACL_ADMIN.drop_acl (l_acl); DBMS_NETWORK_ACL_ADMIN.create_acl ( acl => l_acl , description => 'Allow use of utl_smtp' , principal => l_principal , is_grant => TRUE , privilege => 'connect' ); DBMS_NETWORK_ACL_ADMIN.assign_acl (acl => l_acl, HOST => g_mailhost); COMMIT; DBMS_NETWORK_ACL_ADMIN.add_privilege ( acl => l_acl , principal => l_principal2 , is_grant => TRUE , privilege => 'connect' ); COMMIT; END;
于 2018-01-23T23:50:45.953 回答