如何在10天前使用java mail阅读收件箱中的邮件? protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{ Properties props=System.getProperties(); props.setProperty(“mail.store.protocol”、“imaps”); 试一试{ Session Session=Session.getDefaultInstance(props,null); Store Store=session.getStore(“imaps”); store.connect(“imap.gmail.com”abc@ymail.com“,“abcpqr”); 文件夹收件箱=store.getFolder(“收件箱”); 收件箱。打开(文件夹。读写); SimpleDataFormat myFormatter=新的SimpleDataFormat(“yyyy-MM-dd”,Locale.US); Message[]msg=inbox.getMessages(); int totalmessages=inbox.getMessageCount(); int unreadmessages=inbox.getUnreadMessageCount(); System.out.println(“总消息”+总消息); System.out.println(“未读消息总数”+未读消息); 整数计数,u=0,k1=0; 对于(count=totalmessages-1;k1

如何在10天前使用java mail阅读收件箱中的邮件? protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{ Properties props=System.getProperties(); props.setProperty(“mail.store.protocol”、“imaps”); 试一试{ Session Session=Session.getDefaultInstance(props,null); Store Store=session.getStore(“imaps”); store.connect(“imap.gmail.com”abc@ymail.com“,“abcpqr”); 文件夹收件箱=store.getFolder(“收件箱”); 收件箱。打开(文件夹。读写); SimpleDataFormat myFormatter=新的SimpleDataFormat(“yyyy-MM-dd”,Locale.US); Message[]msg=inbox.getMessages(); int totalmessages=inbox.getMessageCount(); int unreadmessages=inbox.getUnreadMessageCount(); System.out.println(“总消息”+总消息); System.out.println(“未读消息总数”+未读消息); 整数计数,u=0,k1=0; 对于(count=totalmessages-1;k1,java,jsp,servlets,Java,Jsp,Servlets,当subject为空时,这行代码给出java.lang.NullPointerException 使其null安全完成 System.out.println("subject is:" + subject); 如果我理解你想要得到未读邮件并正确检查主题的意图。您可以通过只获取未读邮件来简化代码 System.out.println("subject is:" + subject == null? "":subject); if (subject != null && subje

当subject为空时,这行代码给出
java.lang.NullPointerException

使其
null
安全完成

System.out.println("subject is:" + subject);
如果我理解你想要得到未读邮件并正确检查主题的意图。您可以通过只获取未读邮件来简化代码

System.out.println("subject is:" + subject == null? "":subject);
if (subject != null && subject.toLowerCase().contains("rasa lsi training inquiry")){

因此,请解释什么不起作用。您收到了什么错误消息?会发生什么?否则,这不是一个可以回答的问题。“如何在10天前使用java mail阅读收件箱中的邮件?”-这类似于您编写的代码。。。。但是,除非您告诉我们您遇到了什么错误,否则我们将无法帮助您。您好,朋友们,上面的代码正在运行。当我像今天、昨天但不是前天那样阅读收件箱中的邮件时,上面的代码中没有错误&不像前2/3天那样。那么,这个问题的答案是什么呢。请尽快给我建议。是的,但它是如何收到日期至少比当前日期早10天的电子邮件的呢?是的。。从当前日期开始…@SSpoke OP的实现从收件箱获取所有消息,并在其中迭代寻找匹配的主题。如果找到,则打印其发送日期。我将其替换为未读邮件获取以在迭代时保存,其余的都保持不变。我已经用实际的代码片段替换了注释。@Sridhar很抱歉,yeah看起来不错+1。
System.out.println("subject is:" + subject == null? "":subject);
if (subject != null && subject.toLowerCase().contains("rasa lsi training inquiry")){
Flags seen = new Flags(Flags.Flag.SEEN);
FlagTerm fetchUnreadMails = new FlagTerm(seen, false);
Message unreadMessages[] = inbox.search(fetchUnreadMails);

Calendar permittedDate = Calendar.getInstance();    
permittedDate.add(Calendar.DATE, -10);

for(Message message : unreadMessages){
    if (sendDate.after(permittedDate.getTime()) && m.getSubject() != null && m.getSubject().toLowerCase().contains("rasa lsi training inquiry")) {

    }
}