本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Oracle UTL_MAIL
Amazon RDS 透過使用 UTL_MAIL 選項和 SMTP 伺服器支援 Oracle UTL_MAIL。您可以利用 UTL_MAIL 套件,直接從資料庫傳送電子郵件。Amazon RDS 支援下列 Oracle 版本的 UTL_MAIL:
Oracle Database 21c (21.0.0.0),所有版本
Oracle 資料庫 19c (19.0.0.0),所有版本
下列是使用 UTL_MAIL 時的一些限制:
-
UTL_MAIL 不支援 Transport Layer Security (TLS),因此電子郵件不會加密。
若要建立及上傳自訂 Oracle 錢包,以安全地連線至遠端 SSL/TLS 資源,請遵循 使用憑證和 Oracle 錢包設定 UTL_HTTP 存取 之中的指示。
您錢包所需的特定憑證視服務而異。若採用 AWS 服務,您通常可以在 Amazon Trust Services 儲存庫
找到這些憑證。 -
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 伺服器。
新增 Oracle UTL_MAIL 選項
將 Oracle UTL_MAIL 選項新增至資料庫執行個體的一般程序如下:
建立新的選項群組,或是複製或修改現有選項群組。
將選項新增至選項群組。
將選項群組與資料庫執行個體建立關聯。
在新增 UTL_MAIL 選項之後,只要選項群組為作用中狀態,UTL_MAIL 就會為作用中狀態。
將 UTL_MAIL 選項新增至資料庫執行個體
-
判斷要使用的選項群組。您可以建立新的選項群組或使用現有的選項群組。如果您要使用現有的選項群組,請跳到下一個步驟。否則請使用下列設定來建立自訂資料庫選項群組:
-
針對 Engine (引擎),選擇您想要使用的 Oracle 版本。
-
針對 Major engine version (主要引擎版本),請選擇您資料庫執行個體的版本。
如需更多詳細資訊,請參閱 建立選項群組。
-
-
將 UTL_MAIL 選項新增至選項群組。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
將選項群組套用至新的或現有的資料庫執行個體:
-
針對新的資料庫執行個體,您會在啟動執行個體時套用選項群組。如需更多詳細資訊,請參閱 建立 Amazon RDS 資料庫執行個體。
-
針對現有的資料庫執行個體,您可以透過修改執行個體並附加新的選項群組來套用選項群組。如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。
-
使用 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 選項的不同選項群組。您可以指定預設的 (空白) 選項群組或不同的自訂選項群組。如需更多詳細資訊,請參閱 修改 Amazon RDS 資料庫執行個體。
疑難排解
下列是您使用 UTL_MAIL 與 Amazon RDS 搭配時可能遇到的問題。
-
調節。SMTP 連接埠 (25) 是根據彈性網路界面擁有者的政策進行調節。如果您可以使用 UTL_MAIL 成功傳送電子郵件,而且看到錯誤
ORA-29278: SMTP transient error: 421 Service not available,可能是因為正在進行調節。如果您在傳輸電子郵件時經歷調節,則建議您實作退避演算法。如需輪詢演算法的詳細資訊,請參閱AWS 中的錯誤重試與指數退避和如何處理「調節 – 超過最大傳送速率」錯誤。 您可以要求移除此調節。如需詳細資訊,請參閱如何從我的 EC2 執行個體中移除連接埠 25 上的調節?
。