网站建设
联系我们

编写发mail 的pl/sql 程序

发布于:2014-02-11 16:23来源:未知 作者:admin 点击:
先将username/password 经过加密
假如你的 mail 为zhongguo@263.net 密码为 123456
select UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw('zhongguo')))
from dual;
你会得到一串加密的数据,例如emhvbmdndW8=
select UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw('123456')))
from dual;
你会得到一串加密的数据,例如MTIzNDU2
你的mail 服务器为smtp.263.net
create or replace PROCEDURE send_test_message
   IS
     mailhost VARCHAR2(64) := 'smtp.263.net'; --发邮件的邮件服务器
     sender VARCHAR2(64) := 'zhonguo@263.net'; --发件地址
     recipient VARCHAR2(64) := 'zanglie@263.net'; --接受地址
     mail_conn utl_smtp.connection; --数据库预先定义的变量
BEGIN
     mail_conn := utl_smtp.open_connection(mailhost); --打开邮件服务器
     utl_smtp.helo(mail_conn, '263.net'); --握手连接
     utl_smtp.command(mail_conn,'auth login'); --登录命令
     UTL_SMTP.command(mail_conn,' emhvbmdndW8='); --发邮件的的用户名称,加密的
     UTL_SMTP.command(mail_conn,' MTIzNDU2'); --发邮件的的密码,加密的
     utl_smtp.mail(mail_conn, sender); --发邮件的地址
     utl_smtp.rcpt(mail_conn, recipient); --收邮件的地址
 -- If we had the message in a single string, we could collapse
 -- open_data(), write_data(), and close_data() into a single call --- to data().
     utl_smtp.open_data(mail_conn); --向指定的邮件服务器传输数据
     utl_smtp.write_data(mail_conn, 'This is a test message.'||chr(13)); --传输数据的内容
     utl_smtp.write_data(mail_conn, 'This is line 2.' || chr(13)); --chr(13)为换行
     utl_smtp.close_data(mail_conn); --关闭连接
     utl_smtp.quit(mail_conn); --退出邮件服务器
-- EXCEPTION WHEN OTHERS THEN -- Handle the error
END;
/
exec send_test_message --调用程序,发信。
如果想发中文和附件,请查看相关文档。做这个实验要连接到网络。
tag标签:
------分隔线----------------------------
------分隔线----------------------------