【发布时间】:2017-12-04 14:56:07
【问题描述】:
我有一个用于发送邮件的发送邮件程序。我将编写程序以从 sql 中获取值并将值传递给 send_mail 程序以接收邮件,但是当我尝试发送 1000 条记录时,它给了我数字或值错误。可以帮助我重写我的 send_mail 程序以发送 CLOB,这样大小就不会成为限制。 下面给出的是我的程序。
PROCEDURE send_mail (SUBJECT IN CLOB,MAIL_HEADER IN CLOB)
IS
l_connection utl_smtp.connection;
p_smtp_hostname varchar2(200) := 'localhost';
p_smtp_portnum varchar2(200) := '25';
p_from varchar2(200) := 'from@mail.com';
p_to VARCHAR2(400) := 'to@mail.com';
l_temp CLOB;
p_env VARCHAR2(3000) := '';
BEGIN
l_connection := utl_smtp.open_connection( p_smtp_hostname, p_smtp_portnum );
utl_smtp.helo( l_connection, p_smtp_hostname );
utl_smtp.mail( l_connection, p_from );
utl_smtp.rcpt(l_connection, p_to );
utl_smtp.open_data(l_connection);
l_temp := 'MIME-Version: 2.0' || chr(13) || chr(10);
l_temp := l_temp || 'To: ' || p_to || chr(13) || chr(10);
l_temp := l_temp || 'From: ' || p_from || chr(13) || chr(10);
l_temp := l_temp || 'Subject: '|| SUBJECT || p_env || chr(13) || chr(10);
l_temp := l_temp || 'Reply-To: ' || p_to || chr(13) || chr(10);
l_temp := l_temp || 'Content-type: text/html;' ||
chr(13) || chr(10) || chr(13) || chr(10);
utl_smtp.write_data(l_connection, l_temp);
utl_smtp.write_data(l_connection, MAIL_HEADER);
utl_smtp.close_data(l_connection);
utl_smtp.quit( l_connection );
EXCEPTION
WHEN OTHERS THEN
RAISE;
END send_mail;
【问题讨论】: