设置已发送邮件的邮件ID为';收到的邮件不一样。(Java邮件)
设置已发送邮件的邮件ID为';收到的邮件不一样。(Java邮件),java,email,outlook,jakarta-mail,icalendar,Java,Email,Outlook,Jakarta Mail,Icalendar,我正在用java mail发送ical邀请。接收和回答这些请求很好。 现在,我想通过邮件ID跟踪对已发送邀请的回复。 我将已发送邀请的邮件ID设置为: protected void updateMessageID() throws MessagingException { setHeader("Message-ID", messageID); setHeader("UID", UIDString); setHeader("ContentID
我正在用java mail发送ical邀请。接收和回答这些请求很好。
现在,我想通过邮件ID跟踪对已发送邀请的回复。
我将已发送邀请的邮件ID设置为:
protected void updateMessageID() throws MessagingException {
setHeader("Message-ID", messageID);
setHeader("UID", UIDString);
setHeader("ContentID", "blabla");
}
并在此处使用此方法:
//updates so set attributes don't get overwritten
message.updateMessageID();
//send mail
transport.sendMessage(message, message.getAllRecipients());
当我在“邮件选项”(Outlook)下查找收到的邀请时,它会显示我的邮件ID,但如果我回复邀请,Outlook会生成自己的邮件ID,因此我无法将发送的邀请与其回复进行匹配。
在我看来,Outlook正在丢弃我的附加信息,我的UID和ContentID也丢失了。
有人知道我如何告诉Outlook使用给定的邮件ID吗?或者是否有任何其他ID对于发送和接收的邮件是唯一的?您可以使用线程索引头。它对应于PR_CONVERSATION_INDEX MAPI属性-请参阅 如果您发送了有效的线程索引,Outlook应该在回复中额外添加5个字节。然后可以从回复中提取原始线程索引