我有一个使用Java Mail-1. 5的Java程序,该程序可以获取和处理Gmail(IMAP)的message(email)。
在大多数情况下,它都能正常工作,但是当我尝试使用MimeMessage获取message_id时,对于一些消息,它给了我NULL。在那种情况下,我无法处理消息,因为messageID对于消息是唯一的。

字符串messageID =(((MimeMessage)msg).getMessageID(); // NULL表示很少的消息。

还有其他获取消息ID的方法,因为我不想忽略此类消息。

最佳答案

String messageID = ((MimeMessage) msg).getMessageID();

如果此字段不可用或其值不存在,则返回null

如果是null,则可以创建自己的消息ID
StringBuffer s = new StringBuffer();
if(messageId == null)
messageId =  s.append(s.hashCode()).append('.').append(getUniqueId()).append('.').
append(System.currentTimeMillis()).append('.').
append("JavaMail");

这是发送邮件时如何创建和设置邮件ID的方法。您可以根据自己的要求进行实施,然后继续处理您的消息

关于java - 无法获取MimeMessage的message_ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20853729/

10-09 05:50