UTL_SMTP包问题(从ORACLE发送电子邮件)

时间:2010-09-27 15:45:09

标签: sql oracle email ora-06512

一切都运行良好,并没有对我们的邮件包进行任何更改。但我只是注意到我们的unsent_emails表已经填满,当我尝试手动发送未发送的电子邮件(在user_jobs中设置定期作业)时,我收到以下错误;

主邮件包出错:ORA-29279:SMTP永久性错误:501 5.5.2 MAIL FROM语法错误ORA-06512:位于“SYS.UTL_SMTP”,第20行 ORA-06512:在“SYS.UTL_SMTP”,第98行 ORA-06512:在“SYS.UTL_SMTP”,第221行 ORA-06512:在“TRS.MAILPKG”,第63行

知道为什么会这样吗?

3 个答案:

答案 0 :(得分:1)

所有未发送的电子邮件是否都发送给多个收件人?

这是orafaq的链接,表明它可能与向多个收件人发送电子邮件和使用分号 - ';'有关而不是逗号 - ','分隔符。

http://www.orafaq.com/forum/t/119863/2/

如果是这种情况,请尝试使用逗号作为多个收件人的分隔符

答案 1 :(得分:1)

问题是因为我的“来自”电子邮件(由于Bob Jarvis看了它)..它看起来不像是一个电子邮件地址(之前有效但我认为电子邮件服务器有一些变化使它现在不起作用)

答案 2 :(得分:1)

套餐' utl_mail '也遇到同样的问题: 它发送' MAIL FROM:lzsiga@someserver.hu ' 但它应该是' MAIL FROM:< lzsiga@someserver.hu> '

无论我指定为发件人,都不会改变这一点;另一方面,无论我指定什么,RCPT TO始终都是正确的角度括号。

使用' utl_smtp ',只需在UTL_SMTP.MAIL和UTL_SMTP.RCPT的参数周围添加尖括号即可。

Oracle确实有一些示例可能有助于使用utl_stml实现类似utl_mail.send的函数,所以我建议使用它。