Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Oracle UTL_MAIL

Amazon RDS 通过使用 UTL_MAIL 选项和 SMTP 服务器支持 Oracle UTL_MAIL。您可以通过使用 UTL_MAIL 包直接从您的数据库发送电子邮件。Amazon RDS 支持针对以下版本的 Oracle 的 UTL_MAIL:

  • Oracle 版本 12.1.0.2.v5 及更高版本

  • Oracle 版本 12.1.0.1.v6 及更高版本

  • Oracle 版本 11.2.0.4.v9 及更高版本

以下是使用 UTL_MAIL 的一些限制:

  • UTL_MAIL 不支持传输层安全性 (TLS),因此不会对电子邮件进行加密。

  • UTL_MAIL 不支持对 SMTP 服务器进行身份验证。

  • 您在一封电子邮件中只能发送一个附件。

  • 您无法发送 32 K 以上的附件。

  • 您只能使用 ASCII 和广义二进制编码的十进制交换码 (EBCDIC) 字符编码。

  • 默认情况下限制 SMTP 端口 (25)。

当您启用 UTL_MAIL 时,仅向数据库实例的主用户授予执行权限。如果需要,主用户可向其他用户授予执行权限,以便他们能够使用 UTL_MAIL。

重要

建议您启用 Oracle 的内置审计功能以跟踪 UTL_MAIL 过程的使用情况。

Oracle UTL_MAIL 的先决条件

以下是使用 Oracle UTL_MAIL 的先决条件:

  • 一个或多个 SMTP 服务器,及对应的 IP 地址或公有或私有域名服务器 (DNS) 名称。有关通过自定义 DNS 服务器解析的私有 DNS 名称的详细信息,请参阅 设置自定义 DNS 服务器

  • 对于 12c 之前的 Oracle 版本,您的数据库实例还必须使用 XML 数据库选项。有关更多信息,请参阅 Oracle XML DB

添加“Oracle UTL_MAIL”选项

将“Oracle UTL_MAIL”选项添加到数据库实例的一般过程如下所示:

  1. 创建新的选项组,或者复制或修改现有选项组。

  2. 向选项组添加选项。

  3. 将选项组与数据库实例相关联。

在添加“UTL_MAIL”选项后,一旦激活该选项组,就会激活 UTL_MAIL。

将“UTL_MAIL”选项添加到数据库实例

  1. 确定您想要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:

    1. 对于 Engine,请选择要使用的 Oracle 版本。

    2. 对于 Major Engine Version,请选择 11.212.1

    有关更多信息,请参阅 创建选项组

  2. UTL_MAIL 选项添加到该选项组。有关添加选项的更多信息,请参阅 将选项添加到选项组

  3. 将选项组应用到新的或现有的数据库实例:

使用 Oracle UTL_MAIL

在启用“UTL_MAIL”选项后,您必须先配置 SMTP 服务器,然后才能开始使用它。

通过将 SMTP_OUT_SERVER 参数设置为有效的 IP 地址或公有 DNS 名称来配置 SMTP 服务器。对于 SMTP_OUT_SERVER 参数,您可以指定多个服务器的地址的逗号分隔的列表。如果第一个服务器不可用,则 UTL_MAIL 会尝试下一个服务器,依此类推。

您可以通过使用数据库参数组设置数据库实例的默认 SMTP_OUT_SERVER。您可以通过在数据库实例的数据库上运行以下代码来设置会话的 SMTP_OUT_SERVER 参数。

ALTER SESSION SET smtp_out_server = mailserver.domain.com:25;

在启用“UTL_MAIL”选项并配置 SMTP_OUT_SERVER 后,您可以通过使用 SEND 过程来发送邮件。有关更多信息,请参阅 Oracle 文档中的 UTL_MAIL

删除“Oracle UTL_MAIL”选项

您可以从数据库实例中删除“Oracle UTL_MAIL”。

要从数据库实例中删除“UTL_MAIL”,请执行下列操作之一:

  • 要从多个数据库实例中删除“UTL_MAIL”,请从其所属的选项组中删除“UTL_MAIL”选项。此更改会影响使用该选项组的所有数据库实例。有关更多信息,请参阅 从选项组中移除选项

  • 要从单个数据库实例中删除“UTL_MAIL”选项,请修改该数据库实例,并指定另一个不包含“UTL_MAIL”选项的选项组。您可以指定默认 (空) 选项组,或指定其他自定义选项组。有关更多信息,请参阅 修改运行 Oracle 数据库引擎的数据库实例

故障排除

以下是您在将 UTL_MAIL 用于 Amazon RDS 时可能遇到的问题。

相关主题