注:

使用 DBMS_CLOUD_NOTIFICATION 程序包从 Oracle Autonomous Database 发送电子邮件

简介

Oracle Autonomous Database 提供易于使用、完全自治的数据库,可弹性扩展并提供快速查询性能。作为服务,Autonomous Database 不需要进行数据库管理。

Oracle Autonomous Database 支持使用 DBMS_CLOUD_NOTIFICATION 程序包以电子邮件形式发送消息和查询结果。此程序包仅支持向公共 SMTP 端点发送电子邮件。

:目前唯一受支持的电子邮件提供商是 Oracle Cloud Infrastructure (OCI) 电子邮件传送服务。

目标

使用 DBMS_CLOUD_NOTIFICATION 程序包以电子邮件形式从 Oracle Autonomous Database 发送查询的消息和输出。

先决条件

任务 1:标识和配置 SMTP 连接

  1. 打开导航菜单,然后单击开发人员服务。在应用程序集成下,单击电子邮件传送

  2. 资源菜单中,单击配置

    配置

    • 公共端点:用于为此区域向其发送电子邮件的公共端点。

    • SMTP 端口:用于接受电子邮件的 SMTP 端口。电子邮件传送支持端口 25 或 587 上的 TLS。

    • 安全性:此字段指示是否正在使用 TLS(为电子邮件执行传输中的加密的标准方法)。客户必须在电子邮件传输到 Oracle Cloud Infrastructure Email Delivery 服务时加密电子邮件。加密的电子邮件不会在传输过程中被读取。

任务 2:为电子邮件传送生成 SMTP 凭证

  1. 查看用户详细资料:

    • 如果您要为自己生成 SMTP 凭证:请打开配置文件菜单,然后单击用户设置或账户名称。
    • 如果您是为其他用户生成 SMTP 凭证的管理员:打开导航菜单并单击身份和安全。在身份下,单击用户。在列表中找到用户,然后单击用户名以查看详细信息。
  2. 单击 SMTP 身份证明

  3. 单击生成 SMTP 身份证明

  4. 在对话框中输入 SMTP 身份证明的说明

  5. 单击生成 SMTP 身份证明。将显示如下所示的用户名和密码。

    身份证明

任务 3:为电子邮件传送创建批准的发件人

注册要用于电子邮件传送的发送者电子邮件地址。

  1. 打开导航菜单,然后单击开发人员服务。在应用程序集成下,单击电子邮件传送。在电子邮件传送下,单击批准的发件人。确保位于正确的区间中。用户必须在此区间中有权管理批准的发件人。

  2. 批准的发件人页面上,单击批准的发件人

  3. 创建批准的发件人对话框中,提供以下信息:

    • 输入要作为批准的发件人列出的电子邮件地址。
    • (可选)添加标记以组织资源。要应用定义的标记,您必须有权使用标记名称空间。有关详细信息,请参阅“Resource Tags(资源标记)”。如果您不确定是否要应用标记,则跳过此选项(可在以后应用标记)或询问管理员。
  4. 单击创建批准的发件人

  5. 电子邮件地址已添加到您的批准的发件人列表中。

    发送方

任务 4:以电子邮件形式从 Oracle Autonomous Database 发送消息

  1. 预配 Oracle Autonomous Database:转至“详细信息”页,然后单击数据库操作。此时将打开数据库操作的登录页。使用数据库实例的默认管理员帐户用户名 - 管理员,然后单击下一步。此时将打开“Database Actions(数据库操作)”页。在开发框中,单击 SQL

    数据库操作

  2. 创建身份证明对象并使用 DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE 以电子邮件形式发送消息。将下面的代码片段复制并粘贴到 SQL 工作表中。

    BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'test',
            username        => 'username',
            password        => '************'
       );
       END;
    /
    BEGIN
       DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE(
            provider        => 'email',
            credential_name => 'test',
            message         => 'This message is to confirm that you have received an email from Autonomous Database',
            params          => json_object('recipient' value  '************',
                                           'to_cc'  value '************',
                                           'to_bcc' value ‘************’,
                                           'subject' value 'Test email',
                                           'smtp_host' value 'smtp.email.us-phoenix-1.oci.oraclecloud.com',
                                           'sender'    value  'send.email@test.com' )
       );
       END;
    /
    

    使用 params 参数在 string 值中指定 CC 或 BCC 的发件人、smtp_host、主题、收件人以及收件人。

    • 发送者:已批准发送者的电子邮件 ID
    • smtp_host :SMTP 主机名
    • subject :电子邮件的主题
    • 收件人:收件人的电子邮件 ID
    • to_cc :接收电子邮件 CC 的电子邮件 ID
    • to_bcc :接收电子邮件 BCC 的电子邮件 ID
  3. 确保单击运行语句按钮在 SQL 工作表中运行该语句。

    发送消息

成功完成该过程后,您将收到电子邮件。

电子邮件消息

任务 5:以电子邮件形式从 Oracle Autonomous Database 发送查询结果

  1. 可以使用 DBMS_CLOUD_NOTIFICATION 程序包以电子邮件形式发送查询结果。例如,使用 DBMS_CLOUD_NOTIFICATION.SEND_MESSAGE 以电子邮件形式发送包含查询输出的消息 - SELECT tablespace_name FROM dba_tablespaces;。将下面的代码片段复制并粘贴到 SQL 工作表中。

    BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'test',
            username        => ‘username’
            password        => '************'
       );
       END;
    /
    BEGIN
       DBMS_CLOUD_NOTIFICATION.SEND_DATA(
            provider        => 'email',
            credential_name => 'test',
            query           => 'SELECT tablespace_name FROM dba_tablespaces',
            params          => json_object('recipient' value  '************',
                                           'to_cc'  value '****************',
                                           'to_bcc' value '****************',
                                           'subject' value 'Tablespace Report',
                                           'type' value 'json',
                                           'title' value 'Tablespace report',
                                           'message' value 'Here is the tablespace report',
                                           'smtp_host' value 'smtp.email.us-phoenix-1.oci.oraclecloud.com',
                                           'sender'    value  'send.email@test.com' )
       );
       END;
    /
    
  2. 确保单击运行语句按钮在 SQL 工作表中运行该语句。

    发送数据

成功完成该过程后,您将收到电子邮件。

查询电子邮件

后续步骤

Oracle Autonomous Database 现在支持 DBMS_CLOUD_NOTIFICATION 程序包,我们刚刚了解了如何使用此程序包发送电子邮件。如果您希望详细了解 Oracle Autonomous Database 中的电子邮件传送或 DBMS_CLOUD_NOTIFICATION,请参阅 Oracle Autonomous Database 文档

确认

更多学习资源

探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心