当前位置: 首页 > 知识库问答 >
问题:

无法使用Oracle 11g APEX5发送电子邮件

柯正谊
2023-03-14

试图解决使用Oracle APEX5 11g发送电子邮件的问题。我已按照Oracle说明设置了管理设置:

SMTP主机地址-定义SMTP服务器的服务器地址。默认情况下,在安装时,这被设置为localhost。如果将另一台服务器用作SMTP中继,请将此参数更改为该服务器的地址。

SMTP主机端口-定义SMTP服务器侦听邮件请求的端口。默认设置为25。

SMTP身份验证用户名-如果输入用户名,Oracle Application Express会在发送电子邮件时对其进行身份验证。在Oracle Database 11g Release 2(11.2.0.2)之前,只支持SMTP身份验证方案“登录”。在较新的数据库版本上,支持UTL_SMTP的所有身份验证方案。

SMTP身份验证密码-如果输入密码,Oracle Application Express会在发送电子邮件时对其进行身份验证。在Oracle Database 11g第2版11.2.0.2版之前,只支持SMTP身份验证方案“登录”。在较新的数据库版本上,支持UTL_SMTP的所有身份验证方案。

使用SSL/TLS——从Oracle Database 11g Release 2(11.2.0.2)开始,Oracle Application Express支持安全的SMTP连接。选项包括:

是-在SMTP通信之前与SSL/TLS建立安全连接。

连接建立后-Oracle Application Express在连接打开后立即发送SMTP命令STARTTLS。

否-打开非安全连接。

默认电子邮件发自地址-为生成电子邮件的任务定义发自地址,例如批准预配请求或重置密码。

我还按照Oracle针对12c之前版本的说明,以sysdba的身份在sqlplus中运行了“授予连接权限”脚本:

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
  -- Look for the ACL currently assigned to '*' and give APEX_050000
  -- the "connect" privilege if APEX_050000 does not have the privilege yet.

  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_050000',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'APEX_050000', TRUE, 'connect');
  END IF;

EXCEPTION
  -- When no ACL has been assigned to '*'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
    'ACL that lets power users to connect to everywhere',
    'APEX_050000', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

在添加任何包,过程等方面,我需要在应用程序中配置更多吗??

每当我尝试使用APEX发送电子邮件程序或运行标准的APEX_MAIL. SEND PL/SQL代码我只是无法让我的应用程序从我的SMTP服务器发送电子邮件(无论是Gmail还是BT Internet)我从来没有尝试过设置电子邮件从我自己的PC使用localhost环境,因为我现在做的,只做了它之前从一个工作环境这是所有配置.任何建议非常感谢。

共有2个答案

赵驰
2023-03-14
declare

    v_user_name varchar2(100);
    v_password varchar2(100);

begin

    select USERNAME,PASSWORD into v_user_name,v_password from tbl_us where upper(email) = upper(EMAIL); APEX_MAIL.SEND(
    p_to                        =>lower(your_email),
    p_from                      =>'admin@abc.com',
    p_body                      =>null,
    p_subj                      =>'Password for Customer Login',
    p_cc                        => NULL,
    p_bcc                       =>NULL,
    p_replyto                   =>null);

    APEX_MAIL.PUSH_QUEUE;
end;
丌官星渊
2023-03-14

首先创建ACL并将其分配给用户APEX_050000。

第二点,您需要确保连接使用SSL证书,如果使用SSL证书,则必须创建一个钱包并安装适当的证书(.crt)以从外部smtp发送电子邮件。您可以在这里找到详细信息:

https://oracle-base.com/articles/misc/oracle-application-express-apex-ldap-authentication

 类似资料:
  • responseerror:禁止在d:\node-projects\ecom\node_modules@sendgrid\client\src\类\client.js:146:29在processTicksAndRejections(internal/process/task_queues.js:93:5){ 代码:403,response:{headers:{server:'nginx',dat

  • 我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。 错误:这是我得到的错误。 遇到以下SMTP错误:0php_network_getaddresses:getaddrinfo失败:名称或服务未知无法发送数据:AUTH LOGIN发送AUTH LOGIN命令失败。错误:无法发送数据:邮件从:从:遇到以下SMTP错误:无法发送数据:RCPT TO:到:遇到以下SMTP错误:

  • 我得到下面提到的错误。我将mail.jar、activation.jar、mailapi.jar、common-lang3.jar复制到/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext

  • 我的: 但是邮件不会发送到该地址,在控制台中,当我单击时,正在打印,但它不会发送任何电子邮件。 我用的是Django 1.3.7和Python 2.6。 不知道是版本的问题还是什么逻辑问题。

  • 我正在使用发送电子邮件,但得到的错误是 我正在做的是,我有一个类作为。 上面的类有一个静态方法,-它将SMTP服务器设置和消息详细信息作为参数。 我把SMTP服务器设置放在我的web.xml文件中,但不知道出了什么问题 我的类 } 这是我的网站。xml文件 这是我的servlet类 我在做正确的事情,但不知道问题是什么 如果我在gmail中启用较少的安全应用程序设置,那么它的工作正常,我不认为这是

  • 问题内容: 如何使用curl命令行程序从gmail帐户发送电子邮件? 我尝试了以下方法: 使用file.txt作为电子邮件的内容,但是,当我运行此命令时,出现以下错误: 是否可以从仍由curl托管的个人服务器托管帐户发送电子邮件?这样会使身份验证过程更容易吗? 问题答案: curl –url 'smtps://smtp.gmail.com:465’ –ssl-reqd \ –mail-from '