JavaMail überprüfen Sie den Inhalt der Nachricht gmail-IMAP

Ich versuche zu Lesen meine Botschaften, die ich bekommen kann Sie zum drucken der Kopfzeile, aber das aus und die Inhalte werden angezeigt, komisch.
Hier ist der code, den ich benutze, um die Anzeige der Meldungen:

   int j = message.length-1;
    for (int i=j;i>=0;i--) {
        System.out.println("Message " + (i + 1));
        System.out.println("From : " + message[i].getFrom());
        System.out.println("Subject : " + message[i].getSubject());
        try {
            System.out.println("Body: " + message[i].getContent());
        } catch (IOException ex) {
            System.out.println(ex);
        }
    }

Die Ausgabe ist wie folgt:

 Message 1:
 From: [javax.mail.internet.InternetAddress;@175831e]
 Subject: Hello //This is correct
 Body: javax.mail.internet.MimeMultipart@15b5219

Warum nicht diese drucken Sie die eigentliche E-Mail-Adresse für die from-Anweisung? Und warum nicht drucken Sie den tatsächlichen Inhalt? (Ich bin nur interessant, in der plain-text.)

Ganze code:

import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.search.*;
import java.util.*;
import com.sun.mail.imap.*;
import java.io.*;

public class MailClient {
public static void main(String[] args) {
    try {
    Properties props = new Properties();
    props.put("mail.store.protocol","imaps");

    Session session;

    session = Session.getDefaultInstance(props, null);
    Store store = session.getStore("imaps");
    store.connect("imap.gmail.com","[email protected]","password");

    IMAPFolder folder = (IMAPFolder) store.getFolder("inbox");
    folder.open(Folder.READ_ONLY);

    Flags seen = new Flags(Flags.Flag.SEEN);
    FlagTerm unseenFlagTerm = new FlagTerm(seen,false);
    Message message[] = folder.search(unseenFlagTerm); 


    int j = message.length-1;
    for (int i=j;i>=0;i--) {
        System.out.println("Message " + (i + 1));
        System.out.println("From : " + message[i].getFrom());
        System.out.println("Subject : " + message[i].getSubject());
        try {
            System.out.println("Body: " + message[i].getContent());
        } catch (IOException ex) {
            System.out.println(ex);
        }
    }    
    System.out.println(newMsg);

    folder.close(false);
    store.close();
    }
    catch (MessagingException e) {
        System.out.println("Error: " + e);
    }
}
}

Dank!

Da getFrom nicht einen String zurückgeben? Da ich noch nie verwendet diese API, es sieht aus wie es gibt eine InternetAddress, die (wahrscheinlich) hat einige accessor, um den vollen Namen und die E-Mail-Adresse.

InformationsquelleAutor eatonphil | 2012-10-20

Schreibe einen Kommentar