首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 10g UTL_MAIL 套件:簡化 PL/SQL 寄送郵件與附件實作

     編輯:Oracle 資料庫基礎

Oracle 8i 起提供 UTL_SMTP 低階郵件協定操作,10g 新增 UTL_MAIL 高階封裝,大幅簡化寄信程式碼。

UTL_SMTP 繁瑣流程

conn := UTL_SMTP.OPEN_CONNECTION('mail.server', 25);
UTL_SMTP.HELO(conn, 'db.server');
UTL_SMTP.MAIL(conn, 'sender@domain');
UTL_SMTP.RCPT(conn, 'rcpt@domain');
UTL_SMTP.DATA(conn, 'Subject: Test\n\nBody text');
UTL_SMTP.QUIT(conn);

UTL_MAIL 一行搞定

UTL_MAIL.SEND(
  sender      => 'sender@domain',
  recipients  => 'rcpt1@domain, rcpt2@domain',
  cc          => 'cc@domain',
  bcc         => 'bcc@domain',
  subject     => 'Test',
  message     => 'Body text',
  mime_type   => 'text/plain; charset=utf8',
  priority    => 1);  -- 1=High, 3=Normal

附件支援

  • UTL_MAIL.SEND_ATTACH_VARCHAR2:文字型附件。
  • UTL_MAIL.SEND_ATTACH_RAW:二進位附件(BLOB/RAW)。

啟用步驟(需 SYS)

  1. 執行 @$ORACLE_HOME/rdbms/admin/utlmail.sql 建立套件。
  2. 設定初始化參數 SMTP_OUT_SERVER = 'mail.server:25'(指定外發 SMTP 伺服器)。
  3. 授權:GRANT EXECUTE ON UTL_MAIL TO app_user;

安全性提醒

預設未安裝,避免濫用;生產環境建議搭配 ACL (DBMS_NETWORK_ACL_ADMIN) 限制可連線的 SMTP 伺服器與使用者。

UTL_MAIL 讓資料庫內建通知功能(排程失敗告警、報表自動寄送、審計異常通知)開發極為輕鬆。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved