oracle发送邮件附件,oracle发送邮件存储过程:
oracle發送郵件存儲過程:
create or replace procedure bsd_sendemail(
p_receiver varchar2,
p_sub varchar2,
p_txt varchar2)
is
p_user varchar2(30):='';
p_pass varchar2(30):='';
p_sendor varchar2(20):='Gnie';
p_server varchar2(20):='Mail_Server_IP';
p_port number:=25;
p_need_smtp number:=0;
p_subject varchar2(4000);
l_crlf varchar2(2):=utl_tcp.crlf;
l_sendoraddress varchar2(4000);
l_splite varchar2(10):='++';
boundary constant varchar2(256):='-----BYSUK';
first_boundary constant varchar2(256):='--'||boundary||l_crlf;
last_boundary constant varchar2(256):='--'||boundary||'--'||l_crlf;
multipart_mime_type constant varchar2(256):='multipart/mixed boundary := "' || boundary || '"';
type address_list is table of varchar2(100) index by binary_integer;
my_address_list address_list;
---------------------------------------分割郵件地址----------------------------------------------
procedure p_splite_str(p_str varchar2,p_splite_flag int default 1 )
is
l_addr varchar2(254):='';
l_len int;
l_str varchar2(4000);
j int:=0;--表示郵件地址或者附件的個數
begin /*處理接收郵件地址列表,包括去空格、將;轉換為,等*/
l_str:=trim(rtrim(replace(replace(p_str,';',','),'',''),','));
l_len:=length(l_str);
for i in 1..l_len loop
if substr(l_str,i,1) <> ',' then
l_addr:=l_addr||substr(l_str,i,1);
else j:=j+1;
if p_splite_flag = 1 then--表示處理郵件地址
--前后需要加上'<>',否則很多郵箱將不能發送郵件
l_addr:='';
--調用郵件發送過程
my_address_list(j):=l_addr;
end if;
l_addr:='';
end if;
if i=l_len then
j:=j+1;
if p_splite_flag=1 then
--調用郵件發送過程
l_addr:='';
my_address_list(j):=l_addr;
end if;
end if;
end loop;
end;
-------------------------------
總結
以上是生活随笔為你收集整理的oracle发送邮件附件,oracle发送邮件存储过程:的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房祖名今晨获释你怎么看?
- 下一篇: 92油价多少钱一升啊?