如何使用java mail从收件箱中读取新(甚至读取)电子邮件

如何使用java mail从收件箱中读取新(甚至读取)电子邮件,java,jakarta-mail,Java,Jakarta Mail,我想安排电子邮件服务,在那里我想阅读新的电子邮件(也可能在每一小时后阅读一次),现在我可以使用java mail从gmail中阅读IMAP电子邮件收件箱。现在,在我的收件箱中查找新邮件并进行解析是最重要的。我处理和解析电子邮件的工作代码如下 Session session = Session.getInstance(properties); try { IMAPSSLStore store = (IMAPSSLStore)session.getStore(

我想安排电子邮件服务,在那里我想阅读新的电子邮件(也可能在每一小时后阅读一次),现在我可以使用java mail从gmail中阅读IMAP电子邮件收件箱。现在,在我的收件箱中查找新邮件并进行解析是最重要的。我处理和解析电子邮件的工作代码如下

Session session = Session.getInstance(properties);
        try {
            IMAPSSLStore store = (IMAPSSLStore)session.getStore(IMAP);
            store.connect( host, userName, password ) ;
            Folder folderInbox =store.getFolder(IMAP_FOLDER);
            folderInbox.open(Folder.READ_ONLY);
//            FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false);
//            Message[] arrayMessages= folderInbox.search(ft);
            Message[] arrayMessages = folderInbox.getMessages();
            for (int i = 0; i < arrayMessages.length; i++) {
                MimeMessage message = (MimeMessage) arrayMessages[i];
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                message.writeTo(bos);
                bos.close();
                SharedByteArrayInputStream bis =new SharedByteArrayInputStream(bos.toByteArray());
                MimeMessage cmsg = new MimeMessage(session, bis);
                bis.close();

                String contentType = cmsg.getContentType();

                String messageContent = "";

                String megSubject = cmsg.getSubject().toString().trim();

                if(megSubject.contains(configurationStringToCheckSubject.trim())){
                    if (contentType.contains("text/plain")
                            || contentType.contains("text/html")) {
                        Object content = cmsg.getContent();
                        if (content != null) {
                            messageContent = content.toString().trim();
                            messageContent=messageContent.replaceAll("\\<.*?\\>", "");
                            messageContent=messageContent.replaceAll("\n", "");

//                            System.out.println("normal message is**********\n"+messageContent);
                            status=compareContents(messageContent, configurationStringToCheckBody);
                            if(status){
                                return megSubject;
                            }

                        }
                     }else if (contentType.contains(IMAP_CONTENT_TYPE)) {

                        Multipart multiPart = (Multipart) cmsg.getContent();

                        for (int partCount = 0; partCount < numberOfParts; partCount++) {
                            MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
                            if (!Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {

                                String messageContent1=getText(part) ;
                                messageContent+=messageContent1;
                                messageContent=messageContent.replaceAll("\n", "");
                                status=compareContents(messageContent, configurationStringToCheckBody);
                                if(status){
                                    return megSubject;
                                }                         
                        }
                    }
                }
Session Session=Session.getInstance(属性);
试一试{
IMAPSSLStore=(IMAPSSLStore)session.getStore(IMAP);
store.connect(主机、用户名、密码);
Folder folderInbox=store.getFolder(IMAP_文件夹);
folderInbox.open(文件夹只读);
//FlagTerm ft=新FlagTerm(新标志(Flags.Flag.SEEN),false);
//Message[]arrayMessages=folderInbox.search(ft);
Message[]arrayMessages=folderInbox.getMessages();
for(int i=0;i
你的问题是什么?我不明白你在问什么,如果有的话。