2014-03-28 85 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 ;