【发布时间】:2013-07-23 00:19:23
【问题描述】:
我在 smtp 服务器,端口 465 上使用 JAVA 邮件从我的应用程序发送邮件。我的需要是,我必须在发送邮件之前设置 Message-ID。我做了一些研发,找到了下面的代码。我已经覆盖了 updateMessageID() 的方法 MimeMessage
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
public class CustomMimeMessage extends MimeMessage {
public CustomMimeMessage(Session session) {
super(session);
}
@Override
protected void updateMessageID() throws MessagingException {
setHeader("Message-ID", "message id");
}
}
然后我在我的服务中创建了一个 CustomMimeMessage 的实例,然后使用该实例调用 updateMessageID() 方法,但我仍然得到了 gmail 生成的 Message-ID。
【问题讨论】:
-
这可能意味着当邮件经过 gmail 的服务器时,gmail 在将其转发到目的地之前会修改该标头。你不能使用其他标题吗?
-
如果您打开JavaMail session debugging,您是否在正在发送的消息中看到正确的Message-ID 标头?如果 Gmail 正在修改通过它的邮件的 Message-ID,那就太糟糕了...
标签: java email grails groovy jakarta-mail