2014-03-28 62 views
3

我试图使用UTL_MAIL和SMTP服务器smtp.gmail.com用端口25或587从Oracle存储过程发送邮件,的Oracle 11g

如果我使用25端口,得到错误发送邮件,必须使用首先STARTTLS命令,然后587进入无限循环。

我的代码片断低于

create or replace 
PROCEDURE TEST_UTL_MAIL AS 
BEGIN 
    utl_mail.send(
    sender => '[email protected]', 
    recipients => '[email protected]', 
    subject => 'Testing utl_mail', 
    message => 'The receipt of this email means' 
); 
EXCEPTION 
    WHEN OTHERS THEN 
    raise_application_error(-20001,'The following error has occured: ' || sqlerrm); 
    END; 

任何帮助将非常感激。

+0

哪个Oracle的版本您使用的?我_think_ 11.2.0.2是第一个支持邮件TLS的版本。 –

+0

是PL/SQL版本11.2.0.1.0 - 生产 – jasim

+0

然后我认为你会遇到麻烦使它工作。您的邮件服务器似乎要求TLS(安全)通信,并且数据库包不支持,直到11.2.0.2。如果您搜索TLS,还有更多信息[在这里](http://www.experts-exchange.com/Database/Oracle/A_5915-Extending-Oracle's-Email-functionality-with-PL-SQL-Authentication.html)。 –

回答

0

您可能有访问控制列表问题。代码报告的错误是什么?
您也可以提供此查询的输出(你需要提供用户参数):
SELECT host, lower_port, upper_port, acl, DECODE( DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, '&USER', 'connect'), 1, 'GRANTED', 0, 'DENIED', null) privilege FROM dba_network_acls ;