本文介紹了Java Mail在同一主題/對話中發送電子郵件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我們的應用程序自動發送電子郵件,我需要將這些電子郵件分組到線程中,以便用戶將它們組織到他們的郵箱中。這些電子郵件也可能有不同的主題。例如:
已創建第93期
第93期說明已更改
第93期受理人已更改
已創建第94期
第94期已關閉
我正在嘗試將每個子電子郵件的”In-Reply-To”標頭設置為指向父郵件Message-ID。因此,每次創建新問題并發送第一封郵件時,我都會保存其Message-ID。當要發送與該問題相關的新電子郵件時,我將添加一個指向保存的Message-ID的”In-Reply-To”標頭。
我的代碼如下:
Message message = new CustomMessage(session, parentMessageId);
message.setFrom(new InternetAddress("from@mycompany.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@customer.com"));
message.setSubject("Issue " + id + " " + actionPerformed);
message.setText(content);
message.saveChanges();
Transport.send(message);
類CustomMessage如下所示:
public class CustomMessage extends MimeMessage {
private String inReplyTo;
public CustomMessage(Session session, String inReplyTo) {
super(session);
this.inReplyTo = inReplyTo;
}
@Override
public void saveChanges() throws MessagingException {
if (inReplyTo != null) {
// This messageID is something like "<51228289.0.1459073465571.JavaMail.admin@mycompany.com>" including <>
setHeader("In-Reply-To", inReplyTo);
}
}
}
問題是電子郵件已發送,但未按線索分組。我注意到,如果它們具有相同的主題,則可以正確地進行分組,但我需要為每封電子郵件使用不同的主題。
對于不同的對象,這實際上是可能的嗎?我需要使用不同的策略嗎?
謝謝
推薦答案
這取決于所使用的郵件閱讀器所使用的”線程”算法。作為郵件的創建者,您不能絕對控制郵件的顯示方式。
這篇關于Java Mail在同一主題/對話中發送電子郵件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,