我有一个班级TestEmail
,其中有一个sendEmail()
方法
现在sendEmail
方法调用一个apache commons方法,该方法在内部调用javax.mail
包中的方法。我想覆盖其中一个内部方法。我提供以下代码流程:
TestEmail.sendEmail()->
commons.Email.send()->commons.Email.sendMIMEMessage()->
javax.mail.Transport.send()->javax.mail.Transport(){saveChanges()}->
javax.mail.MimeMessage.updateHeaders()->updateMessageID()
我想覆盖updateMessageID
方法。在我的TestEmail
课程中。可能吗?怎么样?
答案 0 :(得分:0)
我认为可以通过扩展三个类来实现:commons.Email,javax.mail.Transport和javax.mail.MimeMessage;并重写各自的方法以使用updateMessageID()的新行为。
答案 1 :(得分:0)
看起来你只是覆盖Email.createMimeMessage(Session),其中包含您正在使用的所有子类的电子邮件。然后让createMimeMessage返回一个javax.mail.MimeMessage的子类,它覆盖updateMessageID以执行您想要的操作。如果您只需要删除用户ID,则还有其他方法可以执行此操作。有关详细信息,请参阅:Override Message-ID by configuration。