在 Oracle 的運(yùn)維過程中,常常需要監(jiān)控任務(wù)執(zhí)行情況,這時候如果用 Java 或 Python 都可以自定義一個發(fā)郵件提醒的功能,但如果能調(diào)用 Oracle 自帶的的一些包來實(shí)現(xiàn)郵件提醒,不僅調(diào)用方便,而且提醒的靈活度更高(可以插在存儲過程的任意一個犄角旮旯里)。
這里有兩篇文章,詳細(xì)介紹了調(diào)用 Oracle 系統(tǒng)包實(shí)現(xiàn)郵件提醒功能的兩種方法:
- Oracle 發(fā)送郵件 這一篇調(diào)用了 utl_smtp 包;
- Oracle 11g 使用 UTL_MAIL 包實(shí)現(xiàn)存儲過程發(fā)送郵件 這一篇調(diào)用了 utl_mail 包,適用于 Oracle 11g 及以上版本的系統(tǒng)。
我在使用這兩個包的時候,遇到了“ORA-24247: 網(wǎng)絡(luò)訪問被訪問控制列表 (ACL) 拒絕”的報錯。我先檢查了用戶權(quán)限,然后檢查了郵件服務(wù)器的端口權(quán)限,都沒問題,于是在網(wǎng)絡(luò)上搜索答案,原來真的報錯提示很明顯,就是 ACL 權(quán)限問題,不是其他。
于是參照ORA-24247: 網(wǎng)絡(luò)訪問被訪問控制列表 (ACL) 拒絕這篇文章中的方法重新設(shè)置,一調(diào)試,果然可以正常發(fā)郵件了。