Hallo zusammen ! Ich erstelle gerade eine kleine Mail-Programm mit java. Ich habe kleines Problem beim Anzeigen von empfangenen Nachrichten. Hier ist der wichtige Codeabschnitt:
Es ist nur auf gmail begrenzt. Wenn ich von meinem Laptop eine Nachricht zum Testen verschicke, wird sie nicht als text/plain anerkannt, also als reiner Text, sondern geht es in else-Zweig rein und wird mir angezeigt, dass der Typ multipart/alternative ist. Wenn ich vom Handy eine Mail verschicke ist alles in Ordnung. Habt ihr vielleicht eine Idee wo ich einen Fehler mache?
Java:
private void nachrichtenAbholen() {
einloggen=MiniMailStart.setEinloggen();
String benutzername =einloggen.getBenutzername();
String kennwort = einloggen.getKennwort();
String server = "pop.gmail.com";
Properties eigenschaften = new Properties();
eigenschaften.put("mail.store.protocol", "pop3");
eigenschaften.put("mail.pop3.host", server);
eigenschaften.put("mail.pop3.port", "995");
eigenschaften.put("mail.pop3.starttls.enable", "true");
Session sitzung = Session.getDefaultInstance(eigenschaften);
try (Store store = sitzung.getStore("pop3s")){
store.connect(server, benutzername, kennwort);
Folder posteingang = store.getFolder("INBOX");
posteingang.open(Folder.READ_WRITE);
Message nachrichten[] = posteingang.getMessages();
if (nachrichten.length != 0) {
JOptionPane.showMessageDialog(this, "Es gibt "+ posteingang.getUnreadMessageCount() + " neue Nachrichten.");
for(Message nachricht : nachrichten)
nachrichtVerarbeiten(nachricht);
}
else
JOptionPane.showMessageDialog(this, "Es gibt keine neue Nachrichten.");
posteingang.close(true);
}
catch (Exception e) {
JOptionPane.showMessageDialog(this, "Problem: \n" + e.toString());
}
}
private void nachrichtVerarbeiten(Message nachricht) {
try {
if (nachricht.isMimeType("text/plain")) {
String sender = nachricht.getFrom()[0].toString();
String betreff = nachricht.getSubject();
String inhalt = nachricht.getContent().toString();
nachrichtSpeichern(sender, betreff, inhalt);
nachricht.setFlag(Flags.Flag.DELETED, true);
}
else
JOptionPane.showMessageDialog(this, "Der Typ der Nachricht " + nachricht.getContentType() + "kann nicht verarbeitet werden.");
}
catch (Exception e) {
JOptionPane.showMessageDialog(this, "Problem: \n" + e.toString());
}
}
Es ist nur auf gmail begrenzt. Wenn ich von meinem Laptop eine Nachricht zum Testen verschicke, wird sie nicht als text/plain anerkannt, also als reiner Text, sondern geht es in else-Zweig rein und wird mir angezeigt, dass der Typ multipart/alternative ist. Wenn ich vom Handy eine Mail verschicke ist alles in Ordnung. Habt ihr vielleicht eine Idee wo ich einen Fehler mache?