gpt4 book ai didi

java - 发送邮件前在header中设置MessageId

转载 作者:行者123 更新时间:2023-11-30 06:23:48 24 4
gpt4 key购买 nike

我在 smtp 服务器上使用 JAVA 邮件从我的应用程序发送邮件,端口 465。我的需要是,我必须在发送邮件之前设置 Message-ID。我做了一些研发并找到了下面的代码。我重写了 MimeMessage

的方法 updateMessageID()
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() 方法,但我仍然得到由邮箱。

最佳答案

在你的代码中

setHeader("Message-ID", "message id");

您试图将“消息 ID”设置为 Message-ID,这是非常错误的,您必须设置一个符合消息 ID (Read This) 所有规则的唯一 ID。

试试这个..

import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class CustomMimeMessage extends MimeMessage {
Session session;
private static int id = 0;

public CustomMimeMessage(Session session) {
super(session);
this.session=session;
}

@Override
protected void updateMessageID() throws MessagingException {
setHeader("Message-ID", "<" + getUniqueMessageIDValue(session) + ">");
}

public static String getUniqueMessageIDValue(Session ssn) {
String suffix = null;

InternetAddress addr = InternetAddress.getLocalAddress(ssn);
if (addr != null)
suffix = addr.getAddress();
else {
suffix = "javamailuser@localhost"; // worst-case default
}

StringBuffer s = new StringBuffer();

// Unique string is <hashcode>.<id>.<currentTime>.JavaMail.<suffix>
s.append(s.hashCode()).append('.').append(getUniqueId()).append('.').
append(System.currentTimeMillis()).append('.').
append("JavaMail.").
append(suffix);
return s.toString();
}

private static synchronized int getUniqueId() {
return id++;
}
}

关于java - 发送邮件前在header中设置MessageId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com