本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Oracle UTL_MAIL
Amazon 透過使用 UTL_MAIL 選項和SMTP伺服器來RDS支援 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 信任服務儲存庫
中找到。 -
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 資料庫執行個體。
疑難排解
以下是當您搭配 Amazon 使用 UTL_MAIL 時可能遇到的問題RDS。
-
調節。SMTP 連接埠 (25) 會根據彈性網路介面擁有者的政策進行調節。如果您可以使用 UTL_ 成功傳送電子郵件MAIL,而且您看到錯誤
ORA-29278: SMTP transient error: 421 Service not available
,則可能受到限制。如果您在傳輸電子郵件時經歷調節,則建議您實作退避演算法。如需輪詢演算法的詳細資訊,請參閱AWS中的錯誤重試與指數退避和如何處理「調節 – 超過最大傳送速率」錯誤。 您可以要求移除此調節。如需詳細資訊,請參閱如何從EC2執行個體中移除連接埠 25 上的限流?