麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

利用Oracle數據庫發送郵件的實例代碼

2024-08-29 13:59:16
字體:
來源:轉載
供稿:網友

--發送郵件的主過程如下所述:

Procedure send_mail_ (p_From Varchar2, --郵件發送人p_Fromuser Varchar2, --發件人昵稱p_Touser Varchar2, --接受人昵稱p_To Varchar2, --郵件接收人p_Cc Varchar2, --郵件抄送人p_Subject Varchar2, --郵件標題p_Message Varchar2, --郵件內容p_User Varchar2, --郵件驗證用戶p_Mailhost VARCHAR2, --郵件的服務地址p_Psd Varchar2 --郵件驗證密碼) ISv_Conn Utl_Smtp.Connection; --到郵件服務器的連接v_Msg Varchar2(32700); --郵件內容Psrc Varchar2(4000);Psrc1 Varchar2(4000);v_Touser1 VARCHAR2(4000);v_Touser VARCHAR2(500);v_To Varchar2(500);i Number := 1;j Number := 1;m Number := 1;n Number := 1;str_error VARCHAR2(20000);BEGINv_Touser1 := '';v_Conn := Utl_Smtp.Open_Connection(p_Mailhost, 25);Utl_Smtp.Ehlo(v_Conn, p_Mailhost); -- 是用 ehlo() 而不是 helo() 函數否則會報:ORA-29279: SMTP 永久性錯誤: 503 5.5.2 Send hello first.Utl_Smtp.Command(v_Conn, 'AUTH LOGIN'); -- smtp服務器登錄校驗Utl_Smtp.Command(v_Conn, Utl_Raw.Cast_To_Varchar2(Utl_Encode.Base64_Encode(Utl_Raw.Cast_To_Raw(p_User))));Utl_Smtp.Command(v_Conn, Utl_Raw.Cast_To_Varchar2(Utl_Encode.Base64_Encode(Utl_Raw.Cast_To_Raw(p_Psd ))));Utl_Smtp.Mail (v_Conn, '<' || p_From || '>'); --設置發件人-- 設置收件人----------------Psrc := Rtrim(Ltrim(p_To , ';'), ';') || ';';Psrc1 := Rtrim(Ltrim(p_Touser, ';'), ';') || ';';IF Nvl(Instr(Psrc, ';', j), 0)>0 THENLOOPi := Nvl(Instr(Psrc , ';', j), 0);m := Nvl(Instr(Psrc1, ';', n), 0);If i > 0 THENv_To := Trim(Substr(Psrc , j, i - j));v_Touser := nvl(Trim(Substr(Psrc1, n, m - n)),'1');Utl_Smtp.Rcpt(v_Conn, v_To); --設置收件人IF v_Touser = '1' THENv_Touser := trim(SUBSTR(v_To,1,Instr(v_To,'@')-1));END IF;IF j = 1 THENv_Touser1 := v_Touser1 || v_Touser || '<' || v_To || '>';ELSEv_Touser1 := v_Touser1 || ';'|| v_Touser || '<' || v_To || '>';END IF;j := i + 1;n := m + 1;END IF;Exit When i = 0;END LOOP;ELSEUtl_Smtp.Rcpt(v_Conn, p_To); --設置收件人v_Touser1 := v_Touser1 || p_Touser || '<' || p_To || '>';END IF;-- 設置抄送人----------------i := 1;j := 1;IF nvl(p_Cc,'aa')<>'aa' THENPsrc := Rtrim(Ltrim(p_Cc, ';'), ';')|| ';';IF Nvl(Instr(Psrc, ';', j), 0)>0 THENLOOPi := Nvl(Instr(Psrc, ';', j), 0);If i > 0 THENv_To := Trim(Substr(Psrc, j, i - j));j := i + 1;Utl_Smtp.Rcpt(v_Conn, v_To); --設置抄送人END IF;Exit When i = 0;END LOOP;ELSEIF nvl(p_Cc,'1') <> '1' THENUtl_Smtp.Rcpt(v_Conn, p_Cc); --設置抄送人END IF;END IF;END IF;-- 創建要發送的郵件內容注意報頭信息和郵件正文之間要空一行v_Msg := 'Date: ' || To_Char(Sysdate, 'dd mon yy hh24:mi:ss') || Utl_Tcp.Crlf ||'From: ' || p_Fromuser || '<' || p_From || '>' || Utl_Tcp.Crlf ||'To: ' || v_Touser1 || Utl_Tcp.Crlf ||'Cc: ' || p_Cc || Utl_Tcp.Crlf ||'Subject: ' || p_Subject || Utl_Tcp.Crlf ||Utl_Tcp.Crlf -- 這前面是報頭信息|| p_Message; -- 這個是郵件正文Utl_Smtp.Open_Data(v_Conn); --打開流Utl_Smtp.Write_Raw_Data(v_Conn,Utl_Raw.Cast_To_Raw(Convert('Content-Type:text/html;charset=utf-8' ||v_Msg, 'ZHS16GBK'))); --這樣寫標題和內容都能用中文Utl_Smtp.Close_Data(v_Conn); --關閉流Utl_Smtp.Quit(v_Conn); --關閉連接ExceptionWhen Others THENstr_error := Dbms_Utility.Format_Error_Stack || Dbms_Utility.Format_Call_Stack;Dbms_Output.Put_Line(str_error);END;

以上所述是小編給大家帶來的利用Oracle數據庫發送郵件的實例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的,在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕涩涩久久乱小说 | 一级观看免费完整版视频 | 亚洲第一黄色网 | 精精国产xxxx视频在线播放7 | 欧美精品久久久久久久久久 | 一级免费视频 | 国产在线导航 | 久久69精品久久久久久国产越南 | 欧美精品一区自拍a毛片在线视频 | 欧美一级毛片美99毛片 | 国产精品午夜一区 | 在线播放视频一区二区 | 欧美aaaaa一级毛片在线 | 91av在线免费播放 | 久久亚洲精品久久国产一区二区 | 最新中文字幕日本 | av在线免费观看中文字幕 | 中文字幕观看 | 欧洲精品久久久久69精品 | 日本在线视频二区 | 龙床上的呻吟高h | 国产精品久久久久久久午夜片 | av不卡毛片 | 亚洲无毛av | 天天色综合6 | 暴力强行进如hdxxx | 毛片免费在线 | 国产女同疯狂激烈互摸 | 色视频在线 | 成人国产精品一区二区毛片在线 | 91 免费看片| 韩国十九禁高潮床戏在线观看 | 久久亚洲视频网 | 日韩视频区 | 亚洲片在线观看 | 日本精品久久久久久草草 | 国产婷婷一区二区三区 | 男女羞羞在线观看 | www亚洲成人 | 国产精品久久久久久久四虎电影 | 中文字幕国 |