设置已发送邮件的消息ID与收到的邮件不同。 (Java Mail)

时间:2013-10-11 09:57:13

标签: java email outlook javamail icalendar


我正在发送带有java邮件的邀请函。接收和回答这些请求工作正常。
现在我想跟踪他们的消息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使用我给出的Message-ID?或者是否有任何其他ID对于已发送和已接收的邮件是唯一的?

1 个答案:

答案 0 :(得分:0)

您可以使用Thread-Index标头。它对应于PR_CONVERSATION_INDEX MAPI属性 - 请参阅http://msdn.microsoft.com/en-us/library/office/cc765583.aspx

如果发送有效的线程索引,则Outlook应该在回复中追加5个字节。然后,您可以从回复中提取原始线程索引。