通过Oracle发送Email的实现方法Oracle认证考试

文章作者 100test 发表时间 2009:08:21 19:19:10
来源 100Test.Com百考试题网


"libai">   在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.

相关文章


如何快速解决Oracle数据库中的常见问题Oracle认证考试
Oracle中不同用户间数据的导入导出Oracle认证考试
详细讲解Oracle中isnumeric的三种实现Oracle认证考试
对一些代码加密后再放到Oracle数据库中Oracle认证考试
通过Oracle发送Email的实现方法Oracle认证考试
Oracle恢复管理器应用浅析Oracle认证考试
Oracle服务器参数文件维护的四个技巧Oracle认证考试
使用Oracle外部表的五个限制Oracle认证考试
OraclePL_SQL编程规范指南Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛