使用Java Mail API发送邮件时,MimeMessage对象的Message-ID
字段可能会被覆盖,如何设置才能保证设置后不被覆盖。
MimeMessage在调用saveChanges()方法时(比如发送message时会被调用)会设置一个新的Message-ID值,如果你想固定一个Message-ID不被覆盖,可以通过创建一个新的类继承MimeMessage并且重写updateMessageID方法,然后使用这个新的类实例作为消息发送。
class MyMessage extends MimeMessage {
...
protected void updateMessageID() throws MessagingException {
setHeader("Message-ID", "my-message-id");
}
...
}
关于Java Mail API相关的更多内容可以参考:https://javaee.github.io/javamail/FAQ#msgid
内容