日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

實例講解如何通過Oracle成功發送郵件

瀏覽:88日期:2023-11-27 12:25:19
LINUX AS3+Oracle 9.2||10.20.1從Oracle成功發送郵件:

示例如下:

具體的測試環境:LINUX AS3 , Oracle 9.0.2.4

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

PL/SQL Release 9.2.0.4.0 - Production

CORE 9.2.0.3.0 Production

TNS for Linux: Version 9.2.0.4.0 - Production

NLSRTL Version 9.2.0.4.0 - Production

SQL> select * from v$version;

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE 10.2.0.1.0 Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

MAIL服務器為WIN2003,WINMAIL

1.保證ORACLE服務器到MAIL服務器網絡暢通,25端口打開

2.創建發送郵件的procedure如下:

---------------------------------------

CREATE OR REPLACE PROCEDURE SEND_MAIL

(as_sender in varchar2, --郵件發送者

as_recp in varchar2, --郵件接收者

as_subject in varchar2, --郵件標題

as_msg_body in varchar2) --郵件內容

IS

ls_mailhost varchar2(30) := 'mail server'; -- address or IP

lc_mail_conn utl_smtp.connection;

ls_subject varchar2(100);

ls_msg_body varchar2(20000);

ls_username varchar2(256) := 'usercode';

ls_password varchar2(256) := 'password';

BEGIN

lc_mail_conn := utl_smtp.open_connection(ls_mailhost, 25);

utl_smtp.helo(lc_mail_conn, ls_mailhost);

utl_smtp.command(lc_mail_conn, 'AUTH LOGIN');

utl_smtp.command(lc_mail_conn, demo_base64.encode(utl_raw.cast_to_raw(ls_username)));

utl_smtp.command(lc_mail_conn, demo_base64.encode(utl_raw.cast_to_raw(ls_password)));

ls_subject := 'Subject: [' || upper(sys_context('userenv', 'db_name')) || '] - ' || as_subject;

ls_msg_body := as_msg_body;

utl_smtp.mail(lc_mail_conn, '<'||as_sender||'>'); --這里的'<' 一定要寫,不然會出現permanent error

utl_smtp.rcpt(lc_mail_conn, '<'||as_recp||'>');--這里的'<' 一定要寫,不然會出現permanent error

utl_smtp.open_data(lc_mail_conn);

ls_msg_body := 'From: ' || as_sender || chr(13) || chr(10) || 'To: ' || as_recp || chr(13) || chr(10) || ls_subject ||

chr(13) || chr(10) || chr(13) || chr(10) || ls_msg_body;

utl_smtp.write_raw_data(lc_mail_conn, utl_raw.cast_to_raw(ls_msg_body)); --這樣寫subject可以支持中文但body內容不支持中文;

-- utl_smtp.write_data(lc_mail_conn, ls_msg_body); --這樣寫subject不支持中文

utl_smtp.close_data(lc_mail_conn);

utl_smtp.quit(lc_mail_conn);

EXCEPTION

WHEN UTL_SMTP.INVALID_OPERATION THEN

dbms_output.put_line('invalid operation');

WHEN UTL_SMTP.TRANSIENT_ERROR THEN

dbms_output.put_line('transient error');

WHEN UTL_SMTP.PERMANENT_ERROR THEN

dbms_output.put_line('permanent error');

WHEN OTHERS THEN

dbms_output.put_line('others');

end send_mail;

3.執行發送郵件:

exec send_mail('heyu@163.net','admin@163.net','我我','this is a oracle test mail');

注意事項:上面的過程如果在編譯中出現demo_base64.encode must be declared,請大家創建下面的包和包體;

---------------------------------

CREATE OR REPLACE PACKAGE demo_base64 IS

-- Base64-encode a piece of binary data.

--

-- Note that this encode function does not split the encoded text into

-- multiple lines with no more than 76 bytes each as required by

-- the MIME standard.

--

FUNCTION encode(r IN RAW) RETURN VARCHAR2;

END;

------------------------------------

CREATE OR REPLACE PACKAGE BODY demo_base64 IS

TYPE vc2_table IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;

map vc2_table;

-- Initialize the Base64 mapping

PROCEDURE init_map IS

BEGIN

map(0) :='A'; map(1) :='B'; map(2) :='C'; map(3) :='D'; map(4) :='E';

map(5) :='F'; map(6) :='G'; map(7) :='H'; map(8) :='I'; map(9):='J';

map(10):='K'; map(11):='L'; map(12):='M'; map(13):='N'; map(14):='O';

map(15):='P'; map(16):='Q'; map(17):='R'; map(18):='S'; map(19):='T';

map(20):='U'; map(21):='V'; map(22):='W'; map(23):='X'; map(24):='Y';

map(25):='Z'; map(26):='a'; map(27):='b'; map(28):='c'; map(29):='d';

map(30):='e'; map(31):='f'; map(32):='g'; map(33):='h'; map(34):='i';

map(35):='j'; map(36):='k'; map(37):='l'; map(38):='m'; map(39):='n';

map(40):='o'; map(41):='p'; map(42):='q'; map(43):='r'; map(44):='s';

map(45):='t'; map(46):='u'; map(47):='v'; map(48):='w'; map(49):='x';

map(50):='y'; map(51):='z'; map(52):='0'; map(53):='1'; map(54):='2';

map(55):='3'; map(56):='4'; map(57):='5'; map(58):='6'; map(59):='7';

map(60):='8'; map(61):='9'; map(62):='+'; map(63):='/';

END;

FUNCTION encode(r IN RAW) RETURN VARCHAR2 IS

i pls_integer;

x pls_integer;

y pls_integer;

v VARCHAR2(32767);

BEGIN

-- For every 3 bytes, split them into 4 6-bit units and map them to

-- the Base64 characters

i := 1;

WHILE ( i + 2 <= utl_raw.length(r) ) LOOP

x := to_number(utl_raw.substr(r, i, 1), '0X') * 65536 +

to_number(utl_raw.substr(r, i + 1, 1), '0X') * 256 +

to_number(utl_raw.substr(r, i + 2, 1), '0X');

y := floor(x / 262144); v := v || map(y); x := x - y * 262144;

y := floor(x / 4096); v := v || map(y); x := x - y * 4096;

y := floor(x / 64); v := v || map(y); x := x - y * 64;

v := v || map(x);

i := i + 3;

END LOOP;

-- Process the remaining bytes that has fewer than 3 bytes.

IF ( utl_raw.length(r) - i = 0) THEN

x := to_number(utl_raw.substr(r, i, 1), '0X');

y := floor(x / 4); v := v || map(y); x := x - y * 4;

x := x * 16; v := v || map(x);

v := v || '==';

ELSIF ( utl_raw.length(r) - i = 1) THEN

x := to_number(utl_raw.substr(r, i, 1), '0X') * 256 +

to_number(utl_raw.substr(r, i + 1, 1), '0X');

y := floor(x / 1024); v := v || map(y); x := x - y * 1024;

y := floor(x / 16); v := v || map(y); x := x - y * 16;

x := x * 4; v := v || map(x);

v := v || '=';

END IF;

RETURN v;

END;

BEGIN

init_map;

END;

--結束.

標簽: Oracle 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美aa国产视频| 免费在线观看一区| 日韩不卡一区二区三区| 老牛影视一区二区三区| 午夜宅男久久久| 欧美成人高清| 亚洲欧美日韩高清在线| 日韩综合一区二区| 日韩激情网站| 久久av超碰| 91日韩欧美| 欧美sss在线视频| 激情综合自拍| 中文字幕亚洲影视| 欧美黑人做爰爽爽爽| 欧美资源在线| 六月天综合网| 日韩精品中文字幕一区二区| 日韩1区2区3区| 欧美影院视频| 久久亚洲道色| 欧美不卡在线| 好吊日精品视频| 伊人成人在线视频| 久热综合在线亚洲精品| 亚洲人www| 亚洲精品伊人| 国产欧美自拍一区| 日韩电影免费在线观看| 国产一区二区高清| 亚洲+小说+欧美+激情+另类| 三级在线看中文字幕完整版| 久久亚洲专区| 亚洲人妖在线| 国产无遮挡裸体免费久久| 色婷婷久久久| 91精品精品| 亚洲视频综合| 蜜臀av性久久久久蜜臀aⅴ四虎 | 麻豆网站免费在线观看| 精品丝袜在线| 亚洲女同一区| 日韩精品欧美大片| 日本国产一区| 精品中国亚洲| 影视先锋久久| 亚洲精品影视| 在线天堂中文资源最新版| 91国语精品自产拍| 欧美一级二区| | 国产精品日韩久久久| 天堂av一区| 日韩av自拍| 蜜桃久久久久久| 欧美日韩亚洲三区| 欧美日韩免费观看视频| 国产色噜噜噜91在线精品| 在线看片福利| 免费成人av在线播放| 国产精品白丝av嫩草影院| 日韩在线短视频| 亚洲91久久| 日产欧产美韩系列久久99| 首页国产精品| 中文视频一区| 黄毛片在线观看| 亚洲欧美一级| 夜鲁夜鲁夜鲁视频在线播放| 综合一区在线| 日韩综合一区| 亚洲精品视频一二三区| 黄色欧美在线| 91嫩草精品| 国产色播av在线| 亚洲精品激情| 欧美日韩在线二区| 麻豆中文一区二区| 中文一区在线| 国产一区二区色噜噜| 丝袜美腿亚洲色图| 美女久久久久久| 中文一区一区三区免费在线观 | 久久国产三级| 999在线观看精品免费不卡网站| 久久99影视| 国产亚洲午夜| 91亚洲一区| 国产欧美日韩视频在线| 中日韩男男gay无套| 亚洲国产欧美日本视频| 国产日韩在线观看视频| 久久av在线| 久久在线电影| 福利一区视频| 国产精品一区二区三区美女 | 国产亚洲欧美日韩精品一区二区三区 | 日本午夜精品久久久久| 欧美在线亚洲| 日本不良网站在线观看| 国产精品亚洲欧美日韩一区在线| 久久国产99| 免费视频亚洲| 精精国产xxxx视频在线野外 | 欧美亚洲一区二区三区| 亚洲免费网址| caoporn视频在线| 国产精品任我爽爆在线播放| 亚洲精品一区二区在线播放∴| 亚洲激情中文| 久久在线视频免费观看| av中文字幕在线观看第一页| 久久99视频| 国产精品15p| 国产欧美日韩一区二区三区四区 | 久草精品视频| 91嫩草精品| 日本va欧美va精品发布| 中文精品电影| 亚洲精品麻豆| 在线精品一区二区| 91久久在线| 91成人网在线观看| 免费av一区| 九一成人免费视频| 天堂资源在线亚洲| 激情综合在线| 红桃视频国产精品| 黄色av一区| 国产精品美女久久久| 一区在线观看| 久久久噜噜噜| 99久久久久| 亚洲欧美伊人| 亚洲在线国产日韩欧美| 国产视频欧美| 最近国产精品视频| 欧美视频精品全部免费观看| 国产精品tv| 激情不卡一区二区三区视频在线| 黄毛片在线观看| 免费不卡中文字幕在线| 午夜在线精品偷拍| 日韩激情一二三区| 老牛国内精品亚洲成av人片| 日韩伦理在线一区| 91精品蜜臀一区二区三区在线| 红桃视频国产精品| 亚洲色图综合| 91亚洲精品视频在线观看| 国产精品一区二区av交换| 久久久免费人体| 亚洲黄色免费看| 免费精品国产的网站免费观看| 久久亚洲国产精品一区二区| 欧美在线看片| 成人在线免费观看91| 三级小说欧洲区亚洲区| 自拍日韩欧美| 日韩三级视频| 久久伊人久久| 色黄视频在线观看| 影音国产精品| 青草综合视频| 在线看片国产福利你懂的| 一区久久精品| 欧美一级久久| a国产在线视频| 香蕉久久久久久久av网站| 欧美日韩在线精品一区二区三区激情综合| 国产精品入口久久| 日韩av免费| 亚洲网址在线观看| 麻豆91精品91久久久的内涵| 欧美精选一区二区三区| 日韩精选在线| zzzwww在线看片免费| 99视频一区| 国产精品1luya在线播放| 激情久久婷婷| 国产精品一区毛片| 精品91久久久久| 国产高清视频一区二区| 女同性一区二区三区人了人一| 日本久久一区| 日韩不卡在线| 日韩精品久久久久久| 日韩福利一区| 日韩高清不卡在线| 日韩中文在线播放| 四虎成人精品一区二区免费网站| 国产极品模特精品一二| 九九综合九九| 精品免费av| 中文字幕一区二区av| 色综合五月天| 91精品日本| 午夜久久影院| 国产一区二区亚洲| 日韩精品国产欧美|