电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:23日期: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, --郵件標(biāo)題

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àng):上面的過程如果在編譯中出現(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é)束.

標(biāo)簽: Oracle 數(shù)據(jù)庫
主站蜘蛛池模板: 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 运动木地板厂家,篮球场木地板品牌,体育场馆木地板安装 - 欧氏运动地板 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 篷房[仓储-婚庆-展览-活动]生产厂家-江苏正德装配式帐篷有限公司 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | 济南办公室装修-厂房装修-商铺装修-工装公司-山东鲁工装饰设计 | 南京兰江泵业有限公司-水解酸化池潜水搅拌机-絮凝反应池搅拌机-好氧区潜水推进器 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 洛阳网站建设_洛阳网站优化_网站建设平台_洛阳香河网络科技有限公司 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 达利园物流科技集团- | 汕头市盛大文化传播有限公司,www.11400.cc | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 贴片电感_贴片功率电感_贴片绕线电感_深圳市百斯特电子有限公司 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ |