使用simplejavamail,我该如何更改消息ID?

时间:2017-05-18 14:14:51

标签: java javamail mime-types

https://github.com/bbottema/simple-java-mail

我使用简单的这个库来发送电子邮件。 有人能告诉我如何在发送电子邮件之前覆盖消息ID吗? 这是我的代码:

Mailer mailer = new Mailer(new ServerConfig(this.smtpHost, this.smtpPort, 
this.from, this.password),TransportStrategy.SMTP_TLS, new 
ProxyConfig(sockHost, sockPort));

mailer.trustAllSSLHosts(true);

mailer.sendMail(new EmailBuilder().from(this.user, this.from).to(to, 
to).subject(this.subject).textHTML(this.body).build());

我在google搜索后拼命尝试

 Session session = mailer.getSession();
 MimeMessage m = new testmm(session, "12345@test.test");
 m.saveChanges();

这里是testmm类代码(从这里的另一个主题复制)

 public class testmm extends MimeMessage {
 private String messageID;

 public testmm(Session session, String messageID) {
 super(session);
 this.messageID = messageID;
 }

 @Override
 protected void updateMessageID() throws MessagingException {
 setHeader("Message-ID", messageID);
 }  
 }

当然它不起作用,因为我覆盖了另一个MimeMessage对象而不是从这个API中使用的对象。 有人之前发现过这个问题吗?  任何建议都是受欢迎的。

1 个答案:

答案 0 :(得分:0)

doc 实际上明确地描述了使用 Simple Java Mail documentation website 进行覆盖,而且再简单不过了!

yourEmailBuilder.fixingMessageId("<123@456>");