从我的邮件帐户读取邮件时遇到问题并将其保存在我的数据库中。我的代码如下:
Store store = null;
Folder folder = null;
Message message = null;
Message[] messages = null;
Object messagecontentObject = null;
String sender = null;
String subject = null;
Multipart multipart = null;
Part part = null;
String contentType = null;
String dateTime = "";
String fileName = "";
Session session = null;
int count = 0;
try {
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imap");
session = Session.getInstance(System.getProperties(), null);
store = session.getStore("imap");
store.connect(mailserver, mail, password);
folder = store.getDefaultFolder();
folder = folder.getFolder("Inbox");
folder.open(Folder.READ_WRITE);
messages = folder.getMessages();
// UNREAD messages
FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
messages = folder.search(ft);
for (int i = 0; i < messages.length; i++) {
message = messages[i];
subject = message.getSubject();
String msgId[] =message.getHeader("Message-Id");// Problem arise here
System.out.println(msgId[0]);
boolean flag = true;
}
} catch (Exception ex) {
}
msgId在某些情况下返回null,我找不到解决此问题的方法。
答案 0 :(得分:4)
消息不是必需以具有Message-Id标头。大多数人都会这样做,如果收到没有邮件的邮件,许多服务器会添加一个,但是如果没有这样的邮件,就不会遇到这样的邮件。这类邮件通常都是垃圾邮件。
因此,根据您使用的Message-Id值,您将不得不找到另一种方法来实现它。