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

您的位置:首頁技術(shù)文章
文章詳情頁

實例講解如何通過Oracle成功發(fā)送郵件

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

示例如下:

具體的測試環(huán)境: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服務(wù)器為WIN2003,WINMAIL

1.保證ORACLE服務(wù)器到MAIL服務(wù)器網(wǎng)絡(luò)暢通,25端口打開

2.創(chuàng)建發(fā)送郵件的procedure如下:

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

CREATE OR REPLACE PROCEDURE SEND_MAIL

(as_sender in varchar2, --郵件發(fā)送者

as_recp in varchar2, --郵件接收者

as_subject in varchar2, --郵件標題

as_msg_body in varchar2) --郵件內(nèi)容

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||'>'); --這里的'<' 一定要寫,不然會出現(xiàn)permanent error

utl_smtp.rcpt(lc_mail_conn, '<'||as_recp||'>');--這里的'<' 一定要寫,不然會出現(xiàn)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內(nèi)容不支持中文;

-- 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.執(zhí)行發(fā)送郵件:

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

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

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

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;

--結(jié)束.

日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91亚洲无吗| 精品一区电影| 日韩美女国产精品| 婷婷亚洲成人| 久久久精品国产**网站| 久久精品影视| 亚洲欧美伊人| 日本欧美久久久久免费播放网| 伊人国产精品| 久久一区精品| 精品91福利视频| 国产亚洲精品自拍| 国产欧美日韩精品一区二区三区| 国产传媒在线观看| 欧美日韩国产精品一区二区亚洲| 欧美色综合网| 久久精品av| 亚洲五月综合| 欧美一级网址| 精品中文在线| 欧美1级日本1级| 日韩一区二区三区精品| 久久精品伊人| 国产一区日韩欧美| 日韩一区二区三区精品视频第3页| 久久av超碰| 日av在线不卡| 日韩在线短视频| 国产精品主播在线观看| 国产拍在线视频| 六月婷婷一区| 日本综合字幕| 亚洲精品第一| 久久99青青| 亚洲欧洲日本mm| 国产精品久久久久久久久久白浆 | 成人污污视频| 国产亚洲福利| 国产一区三区在线播放| 久久成人国产| 成午夜精品一区二区三区软件| 国产国产精品| 欧美日本一区| 影院欧美亚洲| 国产66精品| 日韩三级精品| re久久精品视频| 国产精品久久久久久久久久10秀| 午夜性色一区二区三区免费视频| 91欧美在线| 日本亚州欧洲精品不卡| 久久精品观看| 久久久久观看| 日韩在线视频一区二区三区| 久久国产直播| 激情中国色综合| 欧美日韩国产免费观看视频| 精品日本视频| 日本午夜精品久久久| 免费久久久久久久久| 久久三级中文| 日韩欧美在线精品| av成人国产| 香蕉人人精品| 亚洲女同av| 国产激情综合| 日本国产亚洲| 亚洲欧美日韩视频二区| 久久久久久美女精品| 精品在线网站观看| 国产精品入口久久| 亚洲精品在线国产| 国产免费成人| 性欧美69xoxoxoxo| 成人在线网站| 国产夫妻在线| 国产一区三区在线播放| 国产精品videosex极品| 欧美日韩xxxx| 国产亚洲精品美女久久| 日本不卡视频一二三区| 伊人久久亚洲| 亚洲精品自拍| 亚洲欧美在线综合| 亚洲我射av| 综合国产在线| 免费的成人av| 蜜臀av国产精品久久久久 | 国产精品亚洲一区二区在线观看| 中文一区一区三区免费在线观| 99热精品在线| 午夜在线观看免费一区| 日本久久二区| 国产亚洲电影| 久久免费精品| 亚洲美女久久精品| 天堂日韩电影| 日韩午夜av在线| 热久久免费视频| 三级在线观看一区二区| 免费不卡在线视频| 亚洲欧洲美洲国产香蕉| 91亚洲精品视频在线观看| 国产精品一级在线观看| 精品伊人久久久| 日韩精品诱惑一区?区三区| 99精品一区| 妖精视频成人观看www| 久久成人一区| 欧美日韩亚洲一区| 精品国产aⅴ| 视频二区不卡| 日韩专区欧美专区| 国产区精品区| 精品国产亚洲一区二区三区| 欧美片第1页| 99视频精品免费观看| 日韩精品第二页| 精品一区二区三区中文字幕在线| 加勒比视频一区| 国产99久久| 综合视频一区| 麻豆精品视频在线| 999久久久免费精品国产| 免费成人性网站| 久久久国产精品入口麻豆| 欧美二三四区| 亚洲图片久久| 久久精品毛片| 99久久久久国产精品| 亚洲精品影视| 91综合网人人| 亚洲天堂免费| 97视频热人人精品免费| 亚洲欧美激情诱惑| 免费在线亚洲| 欧美日韩精品一本二本三本| 国产日韩视频| 国产精品7m凸凹视频分类| 日韩和欧美的一区| 樱桃视频成人在线观看| 日韩在线观看一区二区| 精品中文在线| 亚洲图片久久| 高清久久一区| 日韩在线电影| 久久人人精品| 久久wwww| 亚洲在线电影| 97精品视频在线看| 日韩精品免费一区二区夜夜嗨| 欧美激情另类| 日韩av三区| 日韩亚洲国产欧美| 国产中文字幕一区二区三区| 久久亚洲不卡| 日韩精品一卡| 捆绑调教美女网站视频一区 | 久久久久一区| 国产欧美日韩精品一区二区免费 | 日韩毛片视频| 亚洲精品乱码久久久久久蜜桃麻豆| 麻豆国产一区| 美女91精品| 丝袜av一区| 精品国产乱码久久久| 久久国产精品亚洲77777| а√在线中文在线新版| 91麻豆精品| 天堂成人免费av电影一区| 日本在线高清| 国产精品视频一区二区三区| 久久成人亚洲| 不卡在线一区| 日韩成人综合| 欧美激情视频一区二区三区免费| 亚洲自啪免费| 激情综合亚洲| 欧美少妇精品| 精品三级国产| 国产精品15p| 日韩高清一级| 九九综合在线| 亚洲天堂1区| 成人在线视频中文字幕| 国产精品男女| 欧美日韩一区自拍| 日韩毛片网站| 日日夜夜免费精品| 中文字幕一区二区三区日韩精品| 国产精品91一区二区三区| 日韩中文首页| 岛国av在线网站| 国产成人免费精品| 欧美黑人做爰爽爽爽| 欧美日一区二区三区在线观看国产免 | 美女久久一区| 9国产精品视频| 亚洲精品123区| 99re国产精品|