注:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的那些值。
使用 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 发送查询的消息和输出。
先决条件
- 登录到您的 Oracle Cloud 账户。
- 在区间中创建 Autonomous Database (ADB-S)。
任务 1:标识和配置 SMTP 连接
-
打开导航菜单,然后单击开发人员服务。在应用程序集成下,单击电子邮件传送。
-
在资源菜单中,单击配置。
-
公共端点:用于为此区域向其发送电子邮件的公共端点。
-
SMTP 端口:用于接受电子邮件的 SMTP 端口。电子邮件传送支持端口 25 或 587 上的 TLS。
-
安全性:此字段指示是否正在使用 TLS(为电子邮件执行传输中的加密的标准方法)。客户必须在电子邮件传输到 Oracle Cloud Infrastructure Email Delivery 服务时加密电子邮件。加密的电子邮件不会在传输过程中被读取。
-
任务 2:为电子邮件传送生成 SMTP 凭证
-
查看用户详细资料:
- 如果您要为自己生成 SMTP 凭证:请打开配置文件菜单,然后单击用户设置或账户名称。
- 如果您是为其他用户生成 SMTP 凭证的管理员:打开导航菜单并单击身份和安全。在身份下,单击用户。在列表中找到用户,然后单击用户名以查看详细信息。
-
单击 SMTP 身份证明。
-
单击生成 SMTP 身份证明。
-
在对话框中输入 SMTP 身份证明的说明。
-
单击生成 SMTP 身份证明。将显示如下所示的用户名和密码。
任务 3:为电子邮件传送创建批准的发件人
注册要用于电子邮件传送的发送者电子邮件地址。
-
打开导航菜单,然后单击开发人员服务。在应用程序集成下,单击电子邮件传送。在电子邮件传送下,单击批准的发件人。确保位于正确的区间中。用户必须在此区间中有权管理批准的发件人。
-
在批准的发件人页面上,单击批准的发件人。
-
在创建批准的发件人对话框中,提供以下信息:
- 输入要作为批准的发件人列出的电子邮件地址。
- (可选)添加标记以组织资源。要应用定义的标记,您必须有权使用标记名称空间。有关详细信息,请参阅“Resource Tags(资源标记)”。如果您不确定是否要应用标记,则跳过此选项(可在以后应用标记)或询问管理员。
-
单击创建批准的发件人。
-
电子邮件地址已添加到您的批准的发件人列表中。
注:
任务 4:以电子邮件形式从 Oracle Autonomous Database 发送消息
-
预配 Oracle Autonomous Database:转至“详细信息”页,然后单击数据库操作。此时将打开数据库操作的登录页。使用数据库实例的默认管理员帐户用户名 - 管理员,然后单击下一步。此时将打开“Database Actions(数据库操作)”页。在开发框中,单击 SQL 。
-
创建身份证明对象并使用
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
-
确保单击运行语句按钮在 SQL 工作表中运行该语句。
成功完成该过程后,您将收到电子邮件。
任务 5:以电子邮件形式从 Oracle Autonomous Database 发送查询结果
-
可以使用
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; /
-
确保单击运行语句按钮在 SQL 工作表中运行该语句。
成功完成该过程后,您将收到电子邮件。
后续步骤
Oracle Autonomous Database 现在支持 DBMS_CLOUD_NOTIFICATION 程序包,我们刚刚了解了如何使用此程序包发送电子邮件。如果您希望详细了解 Oracle Autonomous Database 中的电子邮件传送或 DBMS_CLOUD_NOTIFICATION,请参阅 Oracle Autonomous Database 文档。
相关链接
- 在 Autonomous Database 上通过电子邮件传送服务发送电子邮件
- 在专用端点上向电子邮件提供商发送电子邮件
- 从 Autonomous Database 发送 Slack 通知
- 从 Autonomous Database 发送 Microsoft Teams 通知
确认
- 作者 - Priya Dhuriya(高级解决方案工程师)
更多学习资源
探索 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 频道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Use the DBMS_CLOUD_NOTIFICATION package to send an email from Oracle Autonomous Database
F85877-01
August 2023
Copyright © 2023, Oracle and/or its affiliates.