文章詳情頁
Oracle利用UTL_MAIL發送電子郵件
瀏覽:4日期:2023-11-22 11:11:49
從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函數連接到電子郵件服務器的指定端口上。一旦成功建立連接,多個函數會被按順序調用來與郵件服務器進行通信。UTL_SMTP.HELO過程會通過向服務器發送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不同,它沒有在函數參數里指定,所以必須預定義)。
排行榜