【发布时间】:2017-10-18 09:58:39
【问题描述】:
https://github.com/bbottema/simple-java-mail
我正在使用简单的这个库来发送电子邮件。 有人可以告诉我如何在发送电子邮件之前覆盖 message-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());
我在谷歌搜索后拼命尝试这个
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 中使用的那个。 以前有人发现过这个问题吗? 欢迎任何建议。
【问题讨论】:
-
我看不到任何明显的方法可以做到这一点,所以我不得不问...为什么要更改 Message-ID?也许有不同的方法来解决你的问题?或者,您可以直接使用 JavaMail API,避免使用 simple-java-mail。
-
我正在使用 simple-java-mail,因为我需要在发送电子邮件之前连接到 sock 服务器,并且使用 javaMail API 这并不简单。:/
-
JavaMail 支持通过 SOCKS 服务器进行连接,只要 SOCKS 服务器不需要身份验证。请参阅
mail.smtp.socks.hostproperty。 -
是的,先生,我没有提到我需要身份验证:/
-
@BillShannon, @DocMoo 其实超级简单:
yourEmailBuilder.fixingMessageId("<123@456>");。您希望改进文档吗?
标签: java jakarta-mail mime-types