最近遇到一個問題:
使用163自動發郵件時經常發送失敗,追究原因報554錯誤,也就是163認爲是廣告或垃圾郵件,阻止了,但是過幾個小時又好了,
如此反覆,導致最近經常擔心郵件是否發送失敗。
至於爲什麼使用163而不使用自己的郵件呢,因爲我們沒有自己的郵件服務器,使用的是阿里巴巴的企業郵箱,
現在考慮使用企業郵箱來發郵件,對之前的代碼更改SMTP服務器地址,發件人,密碼即可,其他的不變
PROCEDURE JW_SEND_MAIL_PROC_SCD(P_RECIPIENT VARCHAR2, -- 郵件接收人
P_SUBJECT VARCHAR2, -- 郵件標題
P_MESSAGE VARCHAR2 -- 郵件正文
) IS
--下面四個變量請根據實際郵件服務器進行賦值
V_MAILHOST VARCHAR2(30) := 'XX.XX.XXX.XXX' ;--'14.18.245.164'; --SMTP服務器地址
V_USER VARCHAR2(30) := '[email protected]';--''; --登錄SMTP服務器的用戶名;
V_PASS VARCHAR2(20) := '********'; --登錄SMTP服務器的密碼
V_SENDER VARCHAR2(50) := '[email protected]'; --發送都郵箱,一般與 ps_user 對應
V_CONN UTL_SMTP.CONNECTION; --到郵件服務器的連接
V_MSG VARCHAR2(32767); --郵件內容
my_recipients VARCHAR2(32767) := P_RECIPIENT;
BEGIN
V_CONN := UTL_SMTP.OPEN_CONNECTION(V_MAILHOST, 25)
其他的不變,至於SMTP服務器地址如何得來,打開dos命令界面
使用命令nslookup smtp.xxxx.com 即可得到smtp服務器地址
eg.
如果得到多個addresses,一個一個的測試即可