使用Java Mail API发送邮件,怎么修改Message-ID字段?

使用Java Mail API发送邮件时,MimeMessage对象的Message-ID字段可能会被覆盖,如何设置才能保证设置后不被覆盖。

java mailsmtp
1
191
小课
小课2022-07-12 22:59
1 个回答

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

1
小课
小课2022-07-12 23:06
你的回答

内容