Próbuję odczytać moje wiadomości, mogę je pobrać, ale nagłówek i treść są wyświetlane jako śmieszne. Oto kod używam do wyświetlania komunikatów:JavaMail sprawdź treść wiadomości 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);
}
}
Wyjście jest w następujący sposób:
Message 1:
From: [javax.mail.internet.InternetAddress;@175831e]
Subject: Hello //This is correct
Body: [email protected]
Dlaczego nie ten wydruk aktualnego adresu e-mail dla ze stwierdzeniem? I dlaczego nie drukuje rzeczywistej treści ciała? (Jestem tylko ciekawy w postaci zwykłego tekstu.)
Cały kod:
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);
}
}
}
Dzięki!
Ponieważ 'getFrom' nie zwraca ciąg? Ponieważ nigdy nie korzystaliśmy z tego interfejsu API, wygląda na to, że zwraca adres internetowy, który (prawdopodobnie) ma dostęp do pełnej nazwy i adresu e-mail. –