从Oracle存储过程发送邮件,Oracle 11g

3

我正在尝试使用utl_mail发送邮件,SMTP服务器为smtp.gmail.com,端口号为25或587。

如果我使用端口号25,会出现错误提示,必须先使用STARTTLS命令;如果使用端口号587,则会进入无限循环。

以下是我的代码片段:

create or replace 
PROCEDURE TEST_UTL_MAIL AS 
BEGIN
  utl_mail.send(
   sender => 'xxx@gmail.com',
    recipients => 'xxx@gmail.com',
   subject => 'Testing utl_mail',
    message => 'The receipt of this email means'
 );
 EXCEPTION
  WHEN OTHERS THEN
  raise_application_error(-20001,'The following error has occured: ' || sqlerrm);
   END;

任何帮助都将不胜感激。

你使用的Oracle版本是哪个?我认为11.2.0.2是第一个支持邮件TLS支持的版本。 - Joachim Isaksson
是的,PL/SQL Release 11.2.0.1.0 - Production。 - jasim
在我的Oracle版本中有没有更好的方法来完成这个任务? - jasim
如果您可以更改邮件服务器端的设置,您可以始终为Oracle服务器的IP地址禁用TLS要求,直到Oracle更新后,您很可能可以再次打开它。在utl_mail中添加TLS支持似乎并不可行。 - Joachim Isaksson
@ Joachim Isaksson 谢谢您的时间,我会尝试并回来报告结果。 - jasim
显示剩余3条评论
1个回答

0

您可能遇到了访问控制列表问题。代码报告的错误是什么?
此外,您能提供此查询的输出结果吗(您需要提供用户参数):
SELECT host, lower_port, upper_port, acl, DECODE( DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE_ACLID(aclid, '&USER', 'connect'), 1, 'GRANTED', 0, 'DENIED', null) privilege FROM dba_network_acls ;


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接