utl_mail介紹
utl_mail實用包為oracle10g中新增的用於發送email的工具。使用簡單。
utl_mail安裝、配置
預設,oracle10g並不會安裝該包。可以在sqlplus下通過運行以下指令碼安裝:
step1: 通過sqlplus運行下面兩個指令檔
{ORACLE_HOME}/RDBMS/Admin/utlmail.sql
{ORACLE_HOME}/RDBMS/Admin/prvtmail.plb
step2: 配置動態初始化參數 smtp_out_server=smtpserver:port[,smtpserver:port,.....]
注意:該smtp伺服器必須是普通的方式——發送郵件不需要認證賬戶資訊,不是esmtp!這是很多人遇到的問題。
而且可以配置多個smtp伺服器,多麼實用的功能。
step3:非常重要的技巧,配置smtp伺服器的郵件轉寄,可以使你的區域網路smtp伺服器發送internet郵件
step4:記住需要對普通使用者賦予可執行utl_mail包的許可權
例如:grant execute on utl_mail to public;
utl_mail使用
utl_mail.send(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority);
注意:可以通過設定mime_type來解決中文亂碼的問題:mime_type='text/plain;charset=UTF-8'
utl_mail.send_attach_raw
和
utl_mail.send_attach_varchar2(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority,
attachment => :attachment,
att_inline => att_inline,
att_mime_type => :att_mime_type,
att_filename => :att_filename);
用法和utl_mail.send類似的。只是指示 attachment 的內容以附件的形式發送。
可以給這個附件內容指定一個 att_filename,其實必須要給一個檔案名稱,否則在郵件用戶端裡就和本文訊息混在一起了!
注意點:sender、recipients、subject 、[attachment ]是必須欄位!