Send Mail on Oracle PL/SQL - 最終 Final 版

這次是 Send Mail on Oracle PL/SQL - 最終 Final 版

Send Mail 第一期 : 點選此處.

Send Mail 第二期 : 點選此處.

Send Mail 第三期 : 點選此處.

集合前三期, 這次不再講如何撰寫程式碼,

而是直接說明有哪些功能可用, 如下 :

1) 最基本功能


 範例
DECLARE
V_MESSAGE VARCHAR2(1000);
BEGIN
v_message := 'Hello 歡迎光臨';

XXFND_MAIL.SEND ( 'tomkuo139@yahoo.com.tw'
, ''
, ''
, 'Send 中文 Mail on PL/SQL'
, V_MESSAGE
);
END;


2) Mail Address 換成別名


 範例
DECLARE
V_MESSAGE VARCHAR2(1000);
BEGIN
v_message := 'Hello 歡迎光臨';

XXFND_MAIL.SEND ( 'abc <tomkuo139@yahoo.com.tw>'
, ''
, ''
, 'Send 中文 Mail on PL/SQL'
, V_MESSAGE
);
END;


3) 發送 Mail 給多人


 範例
DECLARE
V_MESSAGE VARCHAR2(1000);
BEGIN
v_message := 'Hello 歡迎光臨';

XXFND_MAIL.SEND ( 'tomkuo139@yahoo.com.tw, tom<tomkuo139@yahoo.com.tw>, aaa<tomkuo139@yahoo.com.tw>'
, ''
, ''
, 'Send 中文 Mail on PL/SQL'
, V_MESSAGE
);
END;


4) 具有 Cc, Bcc


 範例
DECLARE
V_MESSAGE VARCHAR2(1000);
BEGIN
v_message := 'Hello 歡迎光臨';

XXFND_MAIL.SEND ( 'tomkuo139@yahoo.com.tw'
, 'tom<tomkuo139@yahoo.com.tw>'
, ''
, 'Send 中文 Mail on PL/SQL'
, V_MESSAGE
);
END;


5) Mail Body 顯示 HTML


 範例
DECLARE
V_MESSAGE VARCHAR2(1000);
BEGIN
v_message := 'HTML 語法';

-- 若要給別名, 則規則如右 : Alias , 否則 Alias = Mail-Address
XXFND_MAIL.SEND ( 'tom <tomkuo139@yahoo.com.tw>'
, 'chris <tomkuo139@yahoo.com.tw>'
, ''
, 'Send 中文 Mail on PL/SQL'
, V_MESSAGE
);
END;


6) Mail 將 "實際檔案" 當作附檔


 範例
DECLARE
File_id UTL_FILE.FILE_TYPE;
v_attach_file XXFND_MAIL.GF_FILE;
BEGIN
v_attach_file(1).file_path := '/usr/tmp';
v_attach_file(1).file_name := 'aaa.txt';

-- 建立 File Object
File_id := UTL_FILE.FOPEN(v_attach_file(1).file_path
, v_attach_file(1).file_name
, 'W'
);

-- 寫入資料並換行
UTL_FILE.PUT_LINE(File_id, '哈囉 Oracle ERP 1 !!');
UTL_FILE.PUT_LINE(File_id, '哈囉 Oracle ERP 2 !!');
UTL_FILE.PUT_LINE(File_id, '哈囉 Oracle ERP 3 !!');

-- 寫入資料但不換行
for i in 0..9 loop
UTL_FILE.PUT( File_id, to_char(i) );
end loop;

-- 釋放物件
UTL_FILE.FCLOSE(File_id);

-- Send Mail
XXFND_MAIL.SEND( 'tom <tomkuo139@yahoo.com.tw>'
, ''
, ''
, 'Send 中文 Mail on PL/SQL with Attachment'
, '可以有附檔功能喔 !!'
, true
, v_attach_file
);
END;


7) Mail 將 "Blob 資料" 當作附檔


 範例
DECLARE
v_attach_blob XXFND_MAIL.GB_BLOB;
BEGIN
-- 抓取 Blob 資料
SELECT 'aaa.txt'
, blob_col
INTO v_attach_blob(1).blob_name
, v_attach_blob(1).blob_body
FROM TOM1
WHERE num_col = 1;

-- Send Mail
XXFND_MAIL.SEND( 'tom <tomkuo139@yahoo.com.tw>'
, ''
, ''
, 'Send 中文 Mail on PL/SQL with Attachment'
, '可以有附檔功能喔 !!'
, true
, v_attach_blob
);
END;


完整敘述如下 :

1) 收件者可以有多個, 用 "逗號" or "分號" 區隔

2) 收件者可以有中文顯示, 用 名稱 表示 (請見 Example 範例)

3) 可以指定 Cc, Bcc

4) 可以指定 郵件的優先權

5) Mail Body 可以有圖片顯示

6) Mail Body 可以顯示 HTML

7) Mail Body 可以超過 32k 限制

8) Mail 可有附檔, 多個附檔用 "Array" 區隔

9) Mail 也可將 Blob 資料當作附檔, 多個 Blob 附檔用 "Array" 區隔

10) 跨 Mail 收件軟體, Outlook / Outlook Express / ThunderBird / Yahoo Mail 都可正常收信

當然, 也感謝眾多朋友不斷告知需求與功能改善, 才會讓 Send Mail 愈來愈完善.
Related Posts Plugin for WordPress, Blogger...