最近遇到一个问题:
使用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,一个一个的测试即可