通過oracle發emal突然變慢,一直找不到問題

[复制链接]
查看11 | 回复5 | 2009-7-22 09:30:00 | 显示全部楼层 |阅读模式
CREATE OR REPLACE PROCEDURE SEND_MAIL
(as_sender in varchar2,
as_recp in varchar2,
as_subjectin varchar2,
as_msg_body in varchar2)
IS
ls_mailhostvarchar2(30) := '192.168.2.185';
lc_mail_conn utl_smtp.connection;
ls_subject varchar2(100);
ls_db_name varchar2(20);
ls_msg_bodyvarchar2(20000);
BEGIN
lc_mail_conn := utl_smtp.open_connection(ls_mailhost, 25);
ls_subject := 'Subject: [' || upper(sys_context('userenv', 'db_name')) || '] - ' || as_subject;
ls_msg_body := as_msg_body;
utl_smtp.helo(lc_mail_conn, ls_mailhost);
utl_smtp.mail(lc_mail_conn, as_sender);
utl_smtp.rcpt(lc_mail_conn, as_recp);
utl_smtp.open_data(lc_mail_conn);
ls_msg_body := 'From: ' || as_sender || chr(13) || chr(10) || 'To: ' || as_recp || chr(13) || chr(10) || ls_subject || chr(13) || chr(10) ||chr(13) || chr(10) || ls_msg_body;
utl_smtp.write_raw_data(lc_mail_conn,utl_raw.cast_to_raw(ls_msg_body));
utl_smtp.close_data(lc_mail_conn);
utl_smtp.quit(lc_mail_conn);
EXCEPTION
WHEN UTL_SMTP.INVALID_OPERATION THEN
dbms_output.put_line('invalid operation');
WHEN UTL_SMTP.TRANSIENT_ERROR THEN
dbms_output.put_line('transient error');
WHEN UTL_SMTP.PERMANENT_ERROR THEN
dbms_output.put_line('permanent error');
WHEN OTHERS THEN
dbms_output.put_line('others');
end send_mail;
上面是發email的代碼,之前調用此procedure發email速度很快,但近期突然變慢,我仔細調試程序,發現執行到 lc_mail_conn := utl_smtp.open_connection(ls_mailhost, 25);時候很慢,也就是ping email服務器很慢,為什麼呢,是不是哪裡有限制呢,之前速度一直非常快的,而且數據庫和email是本地網絡,真是百思不得其解
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
頂一下
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
頂一下
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
看你的说明,应该是网络的问题把^_^
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
可能于dns或者路由有关..
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
借机会我问一下楼主, 我在代码中没有看到你有输入密码.
EMAIL服务器能接受你的发送请求吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行