PLSQL,发送电子邮件

时间:2016-03-24 07:48:33

标签: oracle plsql acl

我尝试发送测试电子邮件,但收到错误消息。

以下是代码:

CREATE OR REPLACE PROCEDURE SEND_MAIL (
msg_to varchar2, 
msg_subject varchar2,
msg_text varchar2 )
IS
c utl_smtp.connection;
rc integer; 
msg_from varchar2(50) := 'Oracle9.2'; 
mailhost VARCHAR2(30) := '127.0.0.1'; -- local database host 

BEGIN
c := utl_smtp.open_connection(mailhost, 25); -- SMTP on port 25 
utl_smtp.helo(c, mailhost);
utl_smtp.mail(c, msg_from);
utl_smtp.rcpt(c, msg_to);

utl_smtp.data(c,'From: Oracle Database' || utl_tcp.crlf ||
'To: ' || msg_to || utl_tcp.crlf ||
'Subject: ' || msg_subject || 
utl_tcp.crlf || msg_text);
utl_smtp.quit(c);

EXCEPTION
WHEN UTL_SMTP.INVALID_OPERATION THEN
dbms_output.put_line(' Invalid Operation in Mail attempt 
using UTL_SMTP.');
WHEN UTL_SMTP.TRANSIENT_ERROR THEN
dbms_output.put_line(' Temporary e-mail issue - try again'); 
WHEN UTL_SMTP.PERMANENT_ERROR THEN
dbms_output.put_line(' Permanent Error Encountered.'); 
END;
/

当我尝试执行此程序时......

set serveroutput on;
begin
send_mail('**************','test','test');
end;
/

(*** ......是我的邮件:))

...在输出中我看到:

匿名阻止完成

临时电子邮件问题 - 再试一次

我发现这是由访问控制列表引起的。我找到了许多“解决方案”,但没有一个能够奏效。有什么想法吗?

0 个答案:

没有答案