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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für plain-text und html-Nachrichten:
String content= messages[i].getContent().toString();
Für Multipart-Nachrichten:
null
>>content= bodyPart.getContent().toString();
was könnte der Grund sein? Ich bin beim abrufen der E-Mail-Text. danke!InformationsquelleAutor ThePCWizard
Die JavaMail-FAQ erfahren Sie, wie Sie Zugriff auf die wichtigsten text-Körper der Nachricht.
InformationsquelleAutor Bill Shannon
ändern Sie diese
zu
InformationsquelleAutor Satya
Versuchen Sie als Nächstes:
InformationsquelleAutor Petro Gordiyevich