【问题标题】:send email in oracle apex?在 oracle apex 中发送电子邮件?
【发布时间】:2018-07-01 17:06:51
【问题描述】:

在我的应用程序中,我有表用户,其中每个用户都有一个电子邮件地址。我创建了一个发送邮件流程,因此用户可以相互接收和发送电子邮件,当我按下按钮时激活但我不知道邮件是否已发送,因为我收到错误 ORA-24247: network access denied by access control list (ACL) 即使即使我创建了 ACL 并授予了权限。我正在使用 apex 4.0.2

【问题讨论】:

  • 如果您收到 ORA-24247 错误,则说明您的 ACL 设置不正确,即使您认为正确。请出示您的 ACL 配置语句。

标签: oracle oracle11g oracle-apex ora-24247


【解决方案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;
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多