

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL"></a>

Amazon RDS 透過使用 UTL\$1MAIL 選項和 SMTP 伺服器支援 Oracle UTL\$1MAIL。您可以利用 UTL\$1MAIL 套件，直接從資料庫傳送電子郵件。Amazon RDS 支援下列 Oracle 版本的 UTL\$1MAIL：
+ Oracle Database 21c (21.0.0.0)，所有版本
+ Oracle 資料庫 19c (19.0.0.0)，所有版本

下列是使用 UTL\$1MAIL 時的一些限制：
+ UTL\$1MAIL 不支援 Transport Layer Security (TLS)，因此電子郵件不會加密。

  若要建立及上傳自訂 Oracle 錢包，以安全地連線至遠端 SSL/TLS 資源，請遵循 [使用憑證和 Oracle 錢包設定 UTL\$1HTTP 存取](Oracle.Concepts.ONA.md) 之中的指示。

  您錢包所需的特定憑證視服務而異。若採用 AWS 服務，您通常可以在 [Amazon Trust Services 儲存庫](https://www.amazontrust.com/repository/)找到這些憑證。
+ UTL\$1MAIL 不支援使用 SMTP 伺服器進行身分驗證。
+ 您只能在電子郵件中傳送單一附件。
+ 您無法傳送大於 32 K 的附件。
+ 您只能使用 ASCII 和延伸二進制編碼十進交換碼 (EBCDIC) 字元編碼。
+ SMTP 連接埠 (25) 是根據彈性網路界面擁有者的政策進行調節。

當您啟用 UTL\$1MAIL 時，僅資料庫執行個體的主要使用者會獲授予執行權限。必要時，主要使用者可將執行權限授予其他使用者，以便他們可以使用 UTL\$1MAIL。

**重要**  
建議您啟用 Oracle 的內建稽核功能來追蹤 UTL\$1MAIL 程序的使用。

## Oracle UTL\$1MAIL 的先決條件
<a name="Oracle.Options.UTLMAIL.PreReqs"></a>

下列是使用 Oracle UTL\$1MAIL 的先決條件：
+ 一部或多部 SMTP 伺服器，以及對應 IP 位址，或者公有或私有網域名稱伺服器 (DNS) 名稱。如需透過自訂 DNS 伺服器解析之私有 DNS 名稱的詳細資訊，請參閱[設定自訂 DNS 伺服器](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS)。

## 新增 Oracle UTL\$1MAIL 選項
<a name="Oracle.Options.UTLMAIL.Add"></a>

將 Oracle UTL\$1MAIL 選項新增至資料庫執行個體的一般程序如下：

1. 建立新的選項群組，或是複製或修改現有選項群組。

1. 將選項新增至選項群組。

1. 將選項群組與資料庫執行個體建立關聯。

在新增 UTL\$1MAIL 選項之後，只要選項群組為作用中狀態，UTL\$1MAIL 就會為作用中狀態。

**將 UTL\$1MAIL 選項新增至資料庫執行個體**

1. 判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組，請跳到下一個步驟。否則請使用下列設定來建立自訂資料庫選項群組：

   1. 針對 **Engine (引擎)**，選擇您想要使用的 Oracle 版本。

   1. 針對 **Major engine version (主要引擎版本)**，請選擇您資料庫執行個體的版本。

   如需更多詳細資訊，請參閱 [建立選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)。

1. 將 **UTL\$1MAIL** 選項新增至選項群組。如需新增選項的詳細資訊，請參閱[將選項新增至選項群組](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。

1. 將選項群組套用至新的或現有的資料庫執行個體：
   + 針對新的資料庫執行個體，您會在啟動執行個體時套用選項群組。如需更多詳細資訊，請參閱 [建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。
   + 針對現有的資料庫執行個體，您可以透過修改執行個體並附加新的選項群組來套用選項群組。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 使用 Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Using"></a>

在啟用 UTL\$1MAIL 選項之後，您必須先設定 SMTP 伺服器，然後才能開始使用該選項。

您可以將 SMTP\$1OUT\$1SERVER 參數設定為有效的 IP 位址或公有 DNS 名稱，來設定 SMTP 伺服器。對於 SMTP\$1OUT\$1SERVER 參數，您可以指定逗號分隔的清單，列出多個伺服器的位址。如果第一部伺服器無法使用，則 UTL\$1MAIL 會嘗試下一部伺服器，依此類推。

您可以使用[資料庫參數群組](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)，來設定資料庫執行個體的預設 SMTP\$1OUT\$1SERVER。您可以在資料庫執行個體的資料庫上執行下列程式碼，來設定工作階段的 SMTP\$1OUT\$1SERVER 參數。

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

在啟用 UTL\$1MAIL 選項，且設定 SMTP\$1OUT\$1SERVER 之後，您就可以使用 `SEND` 程序傳送郵件。如需詳細資訊，請參閱 Oracle 文件中的 [UTL\$1MAIL](http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_mail.htm#BABFJJBD)。

## 移除 Oracle UTL\$1MAIL 選項
<a name="Oracle.Options.UTLMAIL.Remove"></a>

您可以從資料庫執行個體中移除 Oracle UTL\$1MAIL。

若要從資料庫執行個體中移除 UTL\$1MAIL，請執行下列其中一個動作：
+ 若要從多個資料庫執行個體中移除 UTL\$1MAIL，請從其所屬的選項群組中移除 UTL\$1MAIL 選項。此變更會影響使用選項群組的所有資料庫執行個體。如需更多詳細資訊，請參閱 [從選項群組移除選項](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)。
+ 若要從單一資料庫執行個體中移除 UTL\$1MAIL，請修改資料庫執行個體，並指定不包括 UTL\$1MAIL 選項的不同選項群組。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

## 疑難排解
<a name="Oracle.Options.UTLMAIL.Troubleshooting"></a>

下列是您使用 UTL\$1MAIL 與 Amazon RDS 搭配時可能遇到的問題。
+ 調節。SMTP 連接埠 (25) 是根據彈性網路界面擁有者的政策進行調節。如果您可以使用 UTL\$1MAIL 成功傳送電子郵件，而且看到錯誤 `ORA-29278: SMTP transient error: 421 Service not available`，可能是因為正在進行調節。如果您在傳輸電子郵件時經歷調節，則建議您實作退避演算法。如需輪詢演算法的詳細資訊，請參閱[AWS 中的錯誤重試與指數退避](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)和[如何處理「調節 – 超過最大傳送速率」錯誤](https://aws.amazon.com/blogs/ses/how-to-handle-a-throttling-maximum-sending-rate-exceeded-error/)。

  您可以要求移除此調節。如需詳細資訊，請參閱[如何從我的 EC2 執行個體中移除連接埠 25 上的調節？](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)。