UTL_SMTP 包问题(从 ORACLE 发送电子邮件)
Posted
技术标签:
【中文标题】UTL_SMTP 包问题(从 ORACLE 发送电子邮件)【英文标题】:Problem with UTL_SMTP package (sending emails from ORACLE) 【发布时间】:2010-09-27 15:45:08 【问题描述】:一切正常,没有对我们的邮件包进行任何更改。但我只是注意到我们的 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 行
知道为什么会发生这种情况吗?
【问题讨论】:
消息表明 FROM 行的格式不正确。您能否发布一些消息的示例,尤其是 FROM 行? 发件人行主要是这种形式的单个电子邮件地址; “email_address;”(在 ; 之后有一个空格 【参考方案1】:是否所有未发送的电子邮件都会发送给多个收件人?
这是 orafaq 的链接,表明它可能与向多个收件人发送电子邮件并使用分号 - ';' 有关而不是逗号 - ',' 分隔符。
http://www.orafaq.com/forum/t/119863/2/
如果是这种情况,请尝试使用逗号作为多个收件人的分隔符
【讨论】:
是的,我将所有的 ';' 转换为 ',',但它仍然没有工作.. 感谢您的建议!【参考方案2】:问题是因为我的“发件人”电子邮件(感谢 Bob Jarvis 对其进行了调查).. 它看起来不像电子邮件地址(以前可以使用,但我认为电子邮件服务器发生了一些变化让它现在不起作用)
【讨论】:
【参考方案3】:使用包“utl_mail”遇到了同样的问题:
它发送“MAIL FROM:lzsiga@someserver.hu”
但它应该是'MAIL FROM:
无论我指定什么发件人,它都不会改变这一点;另一方面,无论我指定什么,RCPT TO 总是正确地用尖括号括起来。
使用 'utl_smtp' 在 UTL_SMTP.MAIL 和 UTL_SMTP.RCPT 的参数周围添加尖括号就足够了。
Oracle 确实有一些示例可能有助于使用 utl_stml 实现类似 utl_mail.send 的函数,所以我建议使用它。
【讨论】:
以上是关于UTL_SMTP 包问题(从 ORACLE 发送电子邮件)的主要内容,如果未能解决你的问题,请参考以下文章