Я пытаюсь импортировать сообщение gmail в мои сервлеты и анализировать почту, так как по их теме я объявил обычный java-класс как Mail и объявил в нем метод приема и вызвал ту же функцию в соединении сервлетов java очень хорошо установлено, что сообщения импортируются в массив Message [], а затем в Message msg ....
но после этого вроде msg.getSubject работает нормально
try{
Properties prop=new Properties();
prop.put("mail.imap.host", host);
prop.put("mail.imap.port", "993");
// prop.put("mail.imap.starttls.enable", "true");
//SSl Properties
prop.setProperty("mail.imap.socketFactory.class","javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.imap.socketFactory.fallback","false");
prop.setProperty("mail.imap.socketFactory.port",String.valueOf(993));
/*Session emailSession = Session.getInstance(prop, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(email, pass);
}
}) ;*/
Session emailSession = Session.getDefaultInstance(prop);
//create the POP3 store object and connect with the pop server
Store store = emailSession.getStore("imap");
store.connect(email, pass);
//create the folder object and open it
/*Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);*/
IMAPFolder folder=(IMAPFolder) store.getFolder("INBOX");
folder.open(folder.READ_ONLY);
// retrieve the messages from the folder in an array and print it
Message[] messages = folder.getMessages();
System.out.println("messages.length---" + messages.length);
for (int i = 0, n = messages.length; i < n; i++) {
Message message = messages[i];
// System.out.println(message.getContentType()+"\t"+message.getContent()
// +"\n"+message.getFrom());
if(message.getSubject().matches("Offline message sent by")){
System.out.println("++++++++++++++ PATTERN MATCHES ++++++++++++");
result="";
result=i+""+message.getContentType()+"\n"+message.getContent();
System.out.println(result);
}
}
ошибка в основном произошла в
for (int i = 0, n = messages.length; i < n; i++) {
Message message = messages[i];
if(message.getSubject().matches("Offline message sent by")){
System.out.println("++++++++++++++ PATTERN MATCHES ++++++++++++");
result="";
result=i+""+message.getContentType()+"\n"+message.getContent();
System.out.println(result);
}
}