发送邮件的plsql代码(续)

最近遇到一个问题:

使用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,一个一个的测试即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章