gpt4 book ai didi

plsql - APEX_MAIL.SEND 函数不起作用,但它没有给出任何错误

转载 作者:行者123 更新时间:2023-12-01 03:30:39 25 4
gpt4 key购买 nike

必须从 发送电子邮件oracle apex 使用 APEX_MAIL.SEND()方法。

我正在使用代码:

BEGIN

apex_mail.send(p_to => 'tanmoydawn@gmail.com'/*l_to_addr*/,
p_from => 'tanmoydawn@gmail.com'/*l_from_addr*/,
p_bcc => l_bcc_addr,
p_subj => l_mail_sub,
p_body => 'Service Request ' || :mail_body ||
'Note:- This is a system generated Email. Please DO NOT REPLY to it.');

apex_mail.push_queue;

EXCEPTION

when others then
INSERT INTO send_mail_error_test VALUES ('Send_mail',systimestamp,:service_request_id||'-err:'||seq_service_req_error_id.NEXTVAL);

COMMIT;

END;

*** 所有变量都包含正确的值
  • 使用数据库并且该数据库具有 ACL(访问控制列表)访问权限
  • 在 apex 管理服务中,已将电子邮件的实例设置配置为主机名、端口、启用电子邮件配置。
  • UTL_SMTP 包已安装
  • 在同一过程中,在控制流的同一点,使用 utl_Smtp 发送邮件的代码工作正常,尽管 apex_mail.send() 不起作用。
  • 那个apex_mail.send()没有给出任何错误或异常,但我没有收到来自它的电子邮件。
  • 有一个困惑,得到了一些类似的解决方案,' APEX_040200 ' 应该被添加到 ACL .但是我正在使用并在其上实现代码的数据库,例如' apex_user ' 已经添加到 ACL .即使现在我也必须添加' APEX_040200 ' 或 ' APEX_050200 ' 到 ACL ?

  • 任何人都可以帮助我并给我一个富有成效的解决方案吗?我正在使用顶点 5.0.2.00.07。

    最佳答案

    可以在 the apex_mail api documentation 中找到:

    Before you can send email from an Application Builder application, you must:

    1. Log in to Oracle Application Express Administration Services and configure the email settings on the Instance Settings page. See "Configuring Email" in Oracle Application Express Administration Guide.

    2. If you are running Oracle Application Express with Oracle Database 11g release 1 (11.1), you must enable outbound mail. In Oracle Database 11g release 1 (11.1), the ability to interact with network services is disabled by default. See "Enabling Network Services in Oracle Database 11g" in Oracle Application Express Application Builder User's Guide.



    您指定的实例设置没问题。您的“数据库具有 ALC 访问权限”并不意味着什么。你的意思是你有一个使用网络 ACL 的数据库? (11g 或更高)
    相同的文档链接到 "the Enabling Network Services in Oracle Database 11g or Later" documentation

    本文档不会让您猜测:

    By default, the ability to interact with network services is disabled in Oracle Database 11g Release 1 or 2 or later. Therefore, if you are running Oracle Application Express with Oracle Database 11g Release 1 or 2 or later, you must use the new DBMS_NETWORK_ACL_ADMIN package to grant connect privileges to any host for the APEX_050000 database user. Failing to grant these privileges results in issues with:...



    如果您有旧版本的 apex,例如 4.2,则要授予的用户是另一个,可以在文档中找到。或者,你可以找出
    例如通过查询 ALL_USERS查看并找到 APEX_######用户,选择版本号最高的那个:
    select *
    from all_users
    where username like 'APEX%'
    order by username;

    关于plsql - APEX_MAIL.SEND 函数不起作用,但它没有给出任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052894/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com