程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 利用UTL_MAIL發送電子郵件

利用UTL_MAIL發送電子郵件

編輯:Oracle數據庫基礎

從Oracle 8i開始,這個數據庫就已經能夠通過UTL_SMTP工具包發送電子郵件了。它提供的PL/SQL工具包實現了RFC所定義的簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)。

Oracle 10g加入了一個新的工具包——UTL_MAIL,它免除了先前的工具包所需要的額外工作。它是對現在仍在使用的UTL_SMTP外加的一個層。

為了體會一下UTL_MAIL所帶來的便利,現在就讓我們先看一下以前的處理方法。UTL_SMTP裡的函數會模仿電子郵件會話的步驟。首先,它首先用UTL_SMTP.OPEN_CONNECTION函數連接到電子郵件發送HELO(“hello”)消息建立一個郵件會話。然後UTL_STMP.MAIL會識別發送者的電子郵箱,UTL_SMTP.RCPT會識別接受者,而UTL_SMTP.DATA會發送消息文本。最後進程由UTL_SMTP.QUIT來結束。

通過使用UTL_MAIL,這多個函數被合並成了一個叫做UTL_MAIL.SEND的存儲過程。它的格式是:

UTL_MAIL.SEND (sender, recipIEntlist, cc, bcc, subject,

Message, mime_type, priority)

RecipIEntlist、cc和bcc參數都是用逗號隔開的接受、抄送和密件抄送人員列表。發送者、主題、消息和mime_type參數都是單個項目字段。上述所有內容都被定義為VARCHAR2。最後一個參數priority是一個用來定義消息優先級別的PLS_INTEGER。

這個工具包還帶有兩個處理附件的過程。SEND_ATTACH_RAW和SEND_ATTACH_VARCHAR2過程與SEND類似,但是帶有一個額外的參數,用來發送附件的RAW或者VARCHAR2類型。

注:在默認情況下,處於安全的考慮UTL_MAIL沒有被配置。你必須以SYS的身份連接進行安裝,然後執行$Oracle_HOME/rdbms/admin目錄下的utlmail.sql腳本。此外,你還必須配置一個初始化參數——SMTP_OUT_SERVER,指向一個出站SMTP服務器(和UTL_STMP不同,它沒有在函數參數裡指定,所以必須預定義)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved