|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
用utl_smtp发送邮件,汉字的显示应该用write_raw_data();
根据Oracle网站的相关说明,示例如下:
- CREATE OR REPLACE PROCEDURE sende AS
- --mailhost varchar2(30) := 'smtp-server.some-company.com';
- mailhost varchar2(30) := '10.155.*.*';
- --最好用邮件服务器的IP地址
- sender varchar2(30) := 'me@some-company.com';
- recipient varchar2(30) := 'someone@some-company.com';
- conn utl_smtp.connection;
- mesghead varchar2(500);
- mesgbody varchar2(2000);
- BEGIN
- conn := utl_smtp.open_connection(mailhost, 25);
- utl_smtp.helo(conn, mailhost);
- utl_smtp.mail(conn, sender);
- utl_smtp.rcpt(conn, recipient);
- utl_smtp.open_data(conn);
- mesghead := 'Date:' || TO_CHAR(SYSDATE, 'dd Mon yy hh24:mi:ss') ||
- utl_tcp.CRLF || 'From:' || sender || utl_tcp.CRLF ||
- 'Subject: Sending Mail From Budget Forewarn System' ||
- utl_tcp.CRLF || 'To: ' || recipient || utl_tcp.CRLF ||
- utl_tcp.CRLF || '' || utl_tcp.CRLF;
- utl_smtp.write_data(conn, mesghead);
- mesgbody := '电脑部预算预警指标(一月份):' || utl_tcp.CRLF ||
- ' 1、预算执行率:,' || utl_tcp.CRLF ||
- ' 2、分科目预算执行情况:' || utl_tcp.CRLF || '' ||
- utl_tcp.CRLF ||
- ' 此邮件为系统自动发送,勿需回复!' ||
- utl_tcp.CRLF;
- utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(mesgbody));
- utl_smtp.close_data(conn);
- utl_smtp.quit(conn);
- --EXCEPTION
- --WHEN OTHERS THEN
- -- Handle the error
- END;
- /
复制代码
上例中用相应的服务器地址和邮件地址替换后就可以运行,不需要考虑NLS_LANG的设置,
如果有问题,请保持Oracle服务器NLS_LANG设置与客户端一致。
Good luck! |
|