- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通過Oracle发送Email的实现方法
在Procedure中p_receiver为收件人地址,多收件人以“,”(英文逗号)分割,p_sub为邮件标题,p_txt为邮件内容(支持HTML)。代码如下:
createorreplaceprocedurebsd_sendemail(p_receivervarchar2,p_subvarchar2,p_txtvarchar2) ?
is?
p_uservarchar2(30):=; ?
p_passvarchar2(30):=; ?
p_sendorvarchar2(20):=Gnie; ?
p_servervarchar2(20):=Mail_Server_IP; ?
p_portnumber:=25; ?
p_need_smtpnumber:=0; ?
p_subjectvarchar2(4000); ?
l_crlfvarchar2(2):=utl_tcp.crlf; ?
l_sendoraddressvarchar2(4000); ?
l_splitevarchar2(10):=++; ?
boundaryconstantvarchar2(256):=-----BYSUK; ?
first_boundaryconstantvarchar2(256):=--||boundary||l_crlf; ?
last_boundaryconstantvarchar2(256):=--||boundary||--||l_crlf; ?
multipart_mime_typeconstantvarchar2(256):=multipart/mixed;boundary=||boundary||; ?
?
typeaddress_lististableofvarchar2(100)indexbybinary_integer; ?
my_address_listaddress_list; ?
---------------------------------------分割邮件地址---------------------------------------------- ?
procedurep_splite_str(p_strvarchar2,p_splite_flagintdefault1)is?
l_addrvarchar2(254):=; ?
l_lenint; ?
l_strvarchar2(4000); ?
jint:=0;--表示邮件地址或者附件的个数 ?
begin?
/*处理接收邮件地址列表,包括去空格、将;转换为,等*/ ?
l_str:=trim(rtrim(replace(replace(p_str,;,,),,),,)); ?
l_len:=length(l_str); ?
foriin1..l_lenloop ?
ifsubstr(l_str,i,1),then?
l_addr:=l_addr||substr(l_str,i,1); ?
else?
j:=j+1; ?
ifp_splite_flag=1then--表示处理邮件地址 ?
--前后需要加上,否则很多邮箱将不能发送邮件 ?
l_addr:=||l_addr||; ?
--调用邮件发送过程 ?
my_address_list(j):=l_addr; ?
endif; ?
l_addr:=; ?
endif; ?
ifi=l_lenthen ?
j:=j+1; ?
ifp_splite_flag=1then ?
--调用邮件发送过程 ?
l_addr:=||l_addr||; ?
my_address_list(j):=l_addr; ?
endif; ?
endif; ?
endloop; ?
end; ?
------------------------------------------------写邮件头和邮件内容------------------------------------------ ?
procedurewrite_data(p_conninoutnocopyutl_smtp.connection, ?
p_nameinvarchar2, ?
p_valueinvarchar2, ?
p_splitevarchar2default:, ?
p_crlfvarchar2defaultl_crlf)is?
begin?
/*utl_raw.cast_to_raw对解决中文乱码问题很重要*/ ?
utl_smtp.write_raw_data(p_conn,utl_raw.cast_to_raw(convert(p_name||p_splite||p_value||p_crlf,ZHS16CGB231280))); ?
end
文档评论(0)