我正在尝试使用 JavaMail API 访问 mailinators 消息。
我可以正确连接到服务器等,但是在阅读消息时,我一直收到“文件夹未打开”异常,并且当我检查文件夹是否打开以及是否未打开文件夹时,这也无济于事。我猜由于某种原因 mailinator 结束了连接。
如果我尝试获取消息的输入流而不是使用 getContent 我可以很好地从输入流中读取,并且它包含消息的样式等,但由于某种原因,我从输入流中读取的数据似乎不包含消息正文。
如果这是关于 mailinator 或者您可以为我提供任何其他支持 pop3 或其他易于阅读的随机电子邮件阅读服务,那么我是否在此项目中使用 mailinator 并不重要。
我当前的邮件阅读代码。
private void checkMail(String user) {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
try {
Store store = session.getStore("pop3");
store.connect("pop.mailinator.com", 110, user, "12345678");
Folder inbox = store.getFolder("inbox");
if(inbox == null) {
System.out.println("no inbox");
} else {
inbox.open(Folder.READ_ONLY);
for(Message message: inbox.getMessages()) {
byte[] buffer = new byte[10000];
int read = 0;
try {
while((read = message.getInputStream().read(buffer, 0, 1024)) > 0) {
for(int i = 0; i < buffer.length; i++) {
System.out.print((char)buffer[i]);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/*try {
System.out.println(message.getContent().toString());
} catch (IOException e) {
e.printStackTrace();
}*/
}
}
inbox.close(false);
store.close();
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
同样从输入流读取时,输入流似乎永无止境,只是重新开始。我的目的是获取邮件正文和主题。