Могу ли я прочитать содержимое почты Gmail?

1

Следующий код используется для извлечения электронной почты из учетной записи gmail. Этот код как-то работает для меня. Я могу получить тему и адрес, но не смог прочитать содержимое почты. спасибо, если у кого есть какое-либо решение

    import java.util.Properties;

import javax.mail.Address;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;

/**
* Class reads emails
*
* @author itcuties
*
*/
public class JavaMailReader {

   public static void main(String[] args) {
       readEmails(true);
   }

   /**
    * Method reads emails from the IMAP or POP3 server.
    * @param isImap - if true then we are reading messages from the IMAP server, if no then read from the POP3 server.
    */
   private static void readEmails(boolean isImap) {
       // Create all the needed properties - empty!
       Properties connectionProperties = new Properties();
       // Create the session
       Session session = Session.getDefaultInstance(connectionProperties,null);

       try {
           System.out.print("Connecting to the IMAP server...");
           // Connecting to the server
           // Set the store depending on the parameter flag value
           String storeName = isImap ? "imaps" : "pop3";   
           Store store = session.getStore(storeName);

           // Set the server depending on the parameter flag value
           String server = isImap ? "imap.gmail.com" : "pop3.gmail.com";
           store.connect(server,"[email protected]","P@ssw0rd1");

           System.out.println("done!");

           // Get the Inbox folder
           Folder inbox = store.getFolder("Inbox");

           // Set the mode to the read-only mode
           inbox.open(Folder.READ_ONLY);

           // Get messages
           Message messages[] = inbox.getMessages();

           System.out.println("Reading messages...");

           // Display the messages
           for(Message message:messages) {
               for (Address a: message.getFrom())
                   System.out.println("From:" + a);

               System.out.println("Title: " + message.getSubject());
               System.out.println();
               System.out.println(message.getContent());
               System.out.println("---");
           }

       } catch (Exception e) {
           e.printStackTrace();
       }

   }

}
  • 0
    в чем ошибка, опубликуйте консоль ошибок
  • 0
    Hussain Akhtar Wahid 'Ghouri' У меня нет никаких ошибок в моей консоли. Я получаю от и тему ясно, но не получаю содержание моих писем
Показать ещё 1 комментарий
Теги:
email

1 ответ

2

Вот ваш вопрос:

Сообщение # getContent()

Поэтому, если у вас есть объект, то есть Object content = message.getContent() вы должны выполнить проверку экземпляра, чтобы увидеть, является ли это классом String или Multipart. Т.е.

Object content = message.getContent()
if ( content instanceof String )
{
    String text = (String) content;
    // Do things
}
else if ( content instanceof Multipart ) 
{
    Multipart multiPart = (Multipart) content;
    // Do things
}
  • 0
    Зин спасибо, но на самом деле я не получил его на самом деле .. Можете ли вы изменить мой код и дать ..
  • 0
    На самом деле попробуйте следующее: вместо System.out.println(message.getContent()); попробуйте message.writeTo( System.out ); , Я не могу проверить с этого момента.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню