zoukankan      html  css  js  c++  java
  • Oracle APEX 发送邮件

    1.网络服务安全设置

    Oracle 11gR2的版本,可能导致邮件发送失败(ORA-24247: network access denied by access control list (ACL))或者邮件没有发送出去。11g采用了更严格的网络服务安全控制ACLs(Access Control Lists),可以用sysdba用户登陆,执行如下代码:

    begin
    dbms_network_acl_admin.create_acl (
       acl          => 'networkacl.xml',
       description  => 'Allow Network Connectivity',
       principal    => 'PUBLIC',
       is_grant     => TRUE,
       privilege    => 'connect',
       start_date   => SYSTIMESTAMP,
       end_date     => NULL);
     
    dbms_network_acl_admin.assign_acl (
       acl         => 'networkacl.xml',
       host        => '*',
       lower_port  => NULL,
       upper_port  => NULL);
     
    commit;
    end;
    

    也可参考如下地址博文:https://blog.csdn.net/apextrace/article/details/8518022

    2.配置Apex邮件管理

    3.执行以下代码发送邮件

    DECLARE
        l_body      CLOB;
    BEGIN
        l_body := '邮件内容 Hello Apex';
        apex_mail.send(
            p_to       => 'ser0632@163.com',   --收件者
            p_from     => 'youemail@163.com', -- 发送者
            p_body     => l_body,
            p_subj     => '邮件主题 hello');
    
    END;
    

     完

    提示:如果你以上步骤都设置无误,但还是发不出去,有可能设置的其他项影响的。

    用 sys 账号执行下列代码

    SELECT * FROM dba_network_acls;  

    如果查询出多行,请把其他多的删除,删除代码如下:

    --删除多余的
    BEGIN
     DBMS_NETWORK_ACL_ADMIN.drop_acl(acl => 'network_services.xml');
     COMMIT;
    END;
    
    
    
    

    network_services.xml 对应 ACL 列,杠(/)后的内容。

    如果删除自己在步骤1添加的内容,请执行下列代码:

    BEGIN
    DBMS_NETWORK_ACL_ADMIN.drop_acl(acl => 'networkacl.xml');
    COMMIT;
    END;

    再次提示:如果还是不能发送,请检查防火墙配置

       

  • 相关阅读:
    文件操作:Directory,File,FielStream、StreamRead和StreamWriter的使用
    MVC中Excel导入
    T对象序列化后T对象中属性字段不见了?
    Sql游标
    Form表单提交
    AJAX异步删除操作
    数据库表结构导出sql语句
    多线程的使用
    找不到dll原因
    代码优化
  • 原文地址:https://www.cnblogs.com/ser0632/p/11390209.html
Copyright © 2011-2022 走看看