ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用UTL_SMTP发送邮件

利用UTL_SMTP发送邮件

原创 Linux操作系统 作者:yangtingkun 时间:2009-06-29 23:13:13 0 删除 编辑

Oracle提供了UTL_SMTP包,可以发送EMAIL

 

 

写了一个很简单的小例子:

SQL> DECLARE
  2  MAIL_CONN UTL_SMTP.CONNECTION;
  3  BEGIN
  4  MAIL_CONN := UTL_SMTP.OPEN_CONNECTION('mail.itpub.net', 25);
  5  UTL_SMTP.HELO(MAIL_CONN, 'mail.itpub.net');
  6  UTL_SMTP.COMMAND(MAIL_CONN, 'AUTH LOGIN');
  7  UTL_SMTP.COMMAND(MAIL_CONN,
  8   UTL_RAW.CAST_TO_VARCHAR2(
  9    UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW('yangtingkun@itpub.net'))));
 10  UTL_SMTP.COMMAND(MAIL_CONN,
 11   UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW('password'))));
 12  UTL_SMTP.MAIL(MAIL_CONN, 'yangtingkun@itpub.net');
 13  UTL_SMTP.RCPT(MAIL_CONN, 'yangtk@cis.com.cn');
 14  UTL_SMTP.DATA(MAIL_CONN, 'TEST');
 15  UTL_SMTP.QUIT(MAIL_CONN);
 16  END;
 17  /

PL/SQL 过程已成功完成。

就这么一个简单的不能在简单的过程,居然花了N个小时才搞定。

首先打开一个SMTP连接,输入一个邮件服务器的地址,注意如果邮件服务器地址不正确会出现类似这样的错误:

1 行出现错误:
ORA-29278: SMTP
临时性错误: 421 Service not available
ORA-06512:
"SYS.UTL_SMTP", line 21
ORA-06512:
"SYS.UTL_SMTP", line 97
ORA-06512:
"SYS.UTL_SMTP", line 139
ORA-06512:
line 4

随后输入的分别是用户名和密码。

其实本来打算用UTL_MAIL包实现发邮件的功能,使用UTL_MAIL包基本上一行代码就可以了,但是现在几乎所有的邮件服务器都要求授权验证,因此只能使用UTL_SMTP包来实现,注意如果用户名、密码出现错误,则会报错:

1 行出现错误:
ORA-29279: SMTP
永久性错误: 535 authorization failed (#5.7.0)
ORA-06512:
"SYS.UTL_SMTP", line 21
ORA-06512:
"SYS.UTL_SMTP", line 99
ORA-06512:
"SYS.UTL_SMTP", line 159
ORA-06512:
line 8

如果没有将用户名密码进行编码就直接发送,会碰到下面的错误:

1 行出现错误:
ORA-29279: SMTP
永久性错误: 501 malformed auth input (#5.5.4)
ORA-06512:
"SYS.UTL_SMTP", line 21
ORA-06512:
"SYS.UTL_SMTP", line 99
ORA-06512:
"SYS.UTL_SMTP", line 159
ORA-06512:
line 7

如果没有设置用户名、密码,或者使用UTL_MAIL包连接到需要授权验证的邮件服务器,则会报错如下:

1 行出现错误:
ORA-29279: SMTP
永久性错误: 554 auth login first
ORA-06512:
"SYS.UTL_SMTP", line 21
ORA-06512:
"SYS.UTL_SMTP", line 99
ORA-06512:
"SYS.UTL_SMTP", line 241
ORA-06512:
"SYS.UTL_MAIL", line 424
ORA-06512:
"SYS.UTL_MAIL", line 594
ORA-06512:
line 2

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-607846/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10404921