Sto provando a leggere i miei messaggi, posso farlo stampare l'intestazione ma il da e il contenuto sono visualizzati in modo divertente. Ecco il codice che sto usando per visualizzare i messaggi:JavaMail controlla il contenuto del messaggio gmail IMAP
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);
}
}
L'uscita è la seguente:
Message 1:
From: [javax.mail.internet.InternetAddress;@175831e]
Subject: Hello //This is correct
Body: [email protected]
Perché non questa stampa l'indirizzo di posta elettronica reale per il dalla dichiarazione? E perché non stampa il contenuto reale del corpo? (Io sono interessanti solo in testo normale.)
codice totale:
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);
}
}
}
Grazie!
Perché 'getFrom' non restituisce una stringa? Non avendo mai usato questa API, sembra che restituisca un indirizzo Internet che (probabilmente) ha alcuni accessori per ottenere il nome completo e l'indirizzo e-mail. –