濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼

利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼

熱門標(biāo)簽:地圖標(biāo)注養(yǎng)老院 開發(fā)外呼系統(tǒng) 慧營(yíng)銷crm外呼系統(tǒng)丹丹 哈爾濱電話機(jī)器人銷售招聘 愛客外呼系統(tǒng)怎么樣 山東crm外呼系統(tǒng)軟件 百度地圖標(biāo)注途經(jīng)點(diǎn) 哪個(gè)400外呼系統(tǒng)好 圖吧網(wǎng)站地圖標(biāo)注

--發(fā)送郵件的主過程如下所述:

Procedure send_mail_ (p_From Varchar2, --郵件發(fā)送人
p_Fromuser Varchar2, --發(fā)件人昵稱
p_Touser Varchar2, --接受人昵稱
p_To Varchar2, --郵件接收人
p_Cc Varchar2, --郵件抄送人
p_Subject Varchar2, --郵件標(biāo)題
p_Message Varchar2, --郵件內(nèi)容
p_User Varchar2, --郵件驗(yàn)證用戶
p_Mailhost VARCHAR2, --郵件的服務(wù)地址
p_Psd Varchar2 --郵件驗(yàn)證密碼
) IS
v_Conn Utl_Smtp.Connection; --到郵件服務(wù)器的連接
v_Msg Varchar2(32700); --郵件內(nèi)容
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);
BEGIN
v_Touser1 := '';
v_Conn := Utl_Smtp.Open_Connection(p_Mailhost, 25);
Utl_Smtp.Ehlo(v_Conn, p_Mailhost); -- 是用 ehlo() 而不是 helo() 函數(shù)否則會(huì)報(bào):ORA-29279: SMTP 永久性錯(cuò)誤: 503 5.5.2 Send hello first.
Utl_Smtp.Command(v_Conn, 'AUTH LOGIN'); -- smtp服務(wù)器登錄校驗(yàn)
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 || '>'); --設(shè)置發(fā)件人
-- 設(shè)置收件人----------------
Psrc := Rtrim(Ltrim(p_To , ';'), ';') || ';';
Psrc1 := Rtrim(Ltrim(p_Touser, ';'), ';') || ';';
IF Nvl(Instr(Psrc, ';', j), 0)>0 THEN
LOOP
i := Nvl(Instr(Psrc , ';', j), 0);
m := Nvl(Instr(Psrc1, ';', n), 0);
If i > 0 THEN
v_To := Trim(Substr(Psrc , j, i - j));
v_Touser := nvl(Trim(Substr(Psrc1, n, m - n)),'1');
Utl_Smtp.Rcpt(v_Conn, v_To); --設(shè)置收件人
IF v_Touser = '1' THEN
v_Touser := trim(SUBSTR(v_To,1,Instr(v_To,'@')-1));
END IF;
IF j = 1 THEN
v_Touser1 := v_Touser1 || v_Touser || '' || v_To || '>';
ELSE
v_Touser1 := v_Touser1 || ';'|| v_Touser || '' || v_To || '>';
END IF;
j := i + 1;
n := m + 1;
END IF;
Exit When i = 0;
END LOOP;
ELSE
Utl_Smtp.Rcpt(v_Conn, p_To); --設(shè)置收件人
v_Touser1 := v_Touser1 || p_Touser || '' || p_To || '>';
END IF;
-- 設(shè)置抄送人----------------
i := 1;
j := 1;
IF nvl(p_Cc,'aa')>'aa' THEN
Psrc := Rtrim(Ltrim(p_Cc, ';'), ';')|| ';';
IF Nvl(Instr(Psrc, ';', j), 0)>0 THEN
LOOP
i := Nvl(Instr(Psrc, ';', j), 0);
If i > 0 THEN
v_To := Trim(Substr(Psrc, j, i - j));
j := i + 1;
Utl_Smtp.Rcpt(v_Conn, v_To); --設(shè)置抄送人
END IF;
Exit When i = 0;
END LOOP;
ELSE
IF nvl(p_Cc,'1') > '1' THEN
Utl_Smtp.Rcpt(v_Conn, p_Cc); --設(shè)置抄送人
END IF;
END IF;
END IF;
-- 創(chuàng)建要發(fā)送的郵件內(nèi)容注意報(bào)頭信息和郵件正文之間要空一行
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 -- 這前面是報(bào)頭信息
|| p_Message; -- 這個(gè)是郵件正文
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'))); --這樣寫標(biāo)題和內(nèi)容都能用中文
Utl_Smtp.Close_Data(v_Conn); --關(guān)閉流
Utl_Smtp.Quit(v_Conn); --關(guān)閉連接
Exception
When Others THEN
str_error := Dbms_Utility.Format_Error_Stack || Dbms_Utility.Format_Call_Stack;
Dbms_Output.Put_Line(str_error);
END;

以上所述是小編給大家?guī)?lái)的利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的,在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • PL/SQL中編寫Oracle數(shù)據(jù)庫(kù)分頁(yè)的存儲(chǔ)過程
  • 詳解PL/SQL Developer連接本地Oracle 11g 64位數(shù)據(jù)庫(kù)
  • 利用PL/SQL從Oracle數(shù)據(jù)庫(kù)導(dǎo)出和導(dǎo)入數(shù)據(jù)
  • PL/SQL遠(yuǎn)程備份和恢復(fù)Oracle數(shù)據(jù)庫(kù)
  • Oracle中PL/SQL中if語(yǔ)句的寫法介紹
  • Oracle 存儲(chǔ)過程發(fā)送郵件實(shí)例學(xué)習(xí)
  • oracle 發(fā)送郵件 實(shí)現(xiàn)方法
  • 如何使用Oracle PL/SQL 實(shí)現(xiàn)發(fā)送電子郵件功能(UTL_MAIL)

標(biāo)簽:開封 武漢 固原 周口 甘肅 青島 和田 承德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼》,本文關(guān)鍵詞  利用,Oracle,數(shù)據(jù)庫(kù),發(fā)送,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于利用Oracle數(shù)據(jù)庫(kù)發(fā)送郵件的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    浑源县| 七台河市| 阜南县| 益阳市| 大港区| 建昌县| 交口县| 白沙| 阿图什市| 兰坪| 扬州市| 花莲县| 新津县| 繁峙县| 岱山县| 雷波县| 延庆县| 大冶市| 南投市| 博客| 嫩江县| 湘阴县| 洪洞县| 阿拉善左旗| 普洱| 景泰县| 安泽县| 石景山区| 晋中市| 佛学| 革吉县| 三亚市| 桐柏县| 靖安县| 朝阳区| 安乡县| 会泽县| 大连市| 玉山县| 中西区| 贵溪市|