Java 使用apache commons mail重新发送多端口邮件
以下是我的场景:Java 使用apache commons mail重新发送多端口邮件,java,email,apache-commons,Java,Email,Apache Commons,以下是我的场景: 一些电子邮件发送bean会被调用,其中包含邮件构造所需的一系列参数 它创建MultiPartEmail并将其排队发送,这是由后台的单独线程完成的,调用者不关心它是否被发送 传递线程拾取排队的电子邮件实例并执行email.send()-因此关闭它 当传递失败时,bean将尝试每5分钟重新发送邮件三次,然后放弃 问题: 我不知道该怎么处理。我手头上有一个以前构造的MultiPartEmail实例,它无法发送。显然,再次执行email.send()会引发以下问题: java.lang
是否有方法重置此非法状态,以便重新使用此消息。我真的没有从头开始创建新实例的方法——调用者早就不存在了,如果不能使用已经构建的对象,这将使整个机制变得非常丑陋。我想我遗漏了一个非常简单的问题。我知道这是一个老问题,但我遇到了同样的问题,我找到了解决办法 当您创建
MultiPartEmail
(或HtmlEmail
)的实例,设置其属性,然后调用send()
方法时,对象将在内部调用以下方法:
- buildMimeMessage()
- sendMimeMessage()
sendMimeMessage()。问题是buildMimeMessage()
只能调用一次。当您依赖基本Email
类的send()
方法时,您会得到原始海报发现的异常
解决方案是当电子邮件
对象是多部分邮件
时,使用我刚才提到的两种方法。您可以显式调用buildMimeMessage()
一次,然后调用sendmimessage()
一次或多次。请详细说明?