我正在使用java内置的java mail api从他们的gmail框中获取用户的邮件,我在another SO question中找到了大部分代码 . 而且我能够正确地提取我想要的大部分信息,例如来自我邮箱的主题,发件人和其他信息 .
一切都很好,除非我去拉消息的"content",它并不总是拉消息的内容 . 它只有十分之一的效果 . 其他9次它只找到“ javax.mail.internet.MimeMultipart@40e9c920
”
我的代码如下 . 我将输出打印到 LogCat
进行测试 . 提前致谢 .
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "Email address here",
"password here");
Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
Message messages[] = inbox.getMessages();
for (Message message : messages)
Log.d("Email", message + "");
Message message[] = inbox.getMessages();
for (int i = 0; i < 25; i++) {
Log.d("From", message[i].getFrom()[0] + "");
Log.d("Subject", message[i].getSubject() + "");
String content = message[i].getContent().toString();
Log.d("content", content + "");
}
编辑:经过一些额外的研究后,我发现它与使用JavaMail阅读多部分电子邮件有关
2 回答
试试这个,
imap.gmail.com
replaced bysmtp.gmail.com
如果其他人有这个问题,那么它一直无法工作的原因是当它发现多部分消息时它无法读取它们 . 以下是阅读多部分电子邮件的解决方案 . 我找到了大部分代码on this website .