JavaMail (die 2.)

volkerk

Mitglied
Hallo,

Dank Eurer Hilfe von gestern kann ich nun mit POP3 eMails lesen und mit SMTP eMails schreiben , danke nochmals.

Nun habe ich aber das Problem (ich will mit den eMails abläufe steuern ...) dass ich immer die "neuen" eMails brauche (die "alten" wurden ja schon verarbeitet).

Ein Abfragen der Flags brachte bei WEB.DE kine ergebnisse (waren nicht gesetzt) .

Dann dachte ich ich setzt diese Flags selbst (im JavaPGM) das ging bei READ_ONLY nicht und READ_WRITE ging bei POP3 nicht.

Deshalb habe ich das Datum/Uhrzeit der letzten eMail gespeichert und ab dann ab diesem Datum gelesen.

So nun die Frage:

- Liegt das am POP3 Protokoll dass das mit diesen Flags (lesen und setzten) nicht geht.
- Welche möglichkeiten hätte ich denn mit POP3 eMails zu markieren (evtl auch in anderen ordner verschieben)
- Ginge das mit IMAP
- ist IMAP von den Properties so ahnlich wie SMTP.

So hoffentlich habt Ihr ein paar Tips für mich.

Keine Angst Programmieren will ich heute nicht -> kommen also keine Fragen mehr


Vielen Dank

Volker.
 
K

kneitzel

Gast
Also mit POP3 habe ich sowas noch nie versucht. Mit IMAP geht das aber auf jeden Fall.

Du musst dir halt nur den store holen, dann den Folder, der Dich interessiert und dann kannst Du neue Emails z.B. mit einer Funktion wie dieser abrufen:
Java:
    public void check() {
        log.trace("check() called.");

        // Loop through all folders that are monitored
        for (Folder folder: folders.values()) {
            try {
                // Loop through all messages.
                Message[] messages = folder.getMessages();
                for (Message message: messages) {
                    // Check if message wasn't seen and wasn't deleted
                    if (!message.isSet(Flags.Flag.SEEN) && !message.isSet(Flags.Flag.DELETED)) {
                        // Mark message as seen.
                        message.setFlag(Flags.Flag.SEEN, true);

                        // Raise NewMailEvent
                        raiseNewEmailEvent(message);
                    }
                }
            } catch (MessagingException ex) {
                log.error("Exception when reading messages of folder {}.", folder.getName(), ex);
                // So far no handling of this error except logging it.
            }
        }

        log.trace("check() call ended.");
    }

Das ist ein Ausschnitt aus meinem ImapMonitor, den ich einmal geschrieben habe. Da ging es halt u regelmäßiges prüfen von IMAP Postfächern, die einmal hinzugefügt wurden.

Und der Aufbau ist halt relativ einfach über das Setzen von properties und dann ein
Java:
Session session = Session.getDefaultInstance(properties).
Store store = session.getStore(protocol); // z.B. "imaps"
store.connect(server, user, password);
Folder folder = store.getFolder(folderName); // z.B. INBOX
folder.open(Folder.READ_WRITE);

Wobei ich halt in der check Routine mehrere Ordner überwachen konnte, daher da das foreach über folders.

Wenn Du fertig bist, dann Folder auch schließen und so! (Wobei ich die Verbindung offen halte, aber das ist ein anderes Thema.)
 

volkerk

Mitglied
Hallo,

mit diesen Flags wäre mir das schon lieber.

Dann werde ich mir dieses IMAP mal antuen (werde bestimmt Eure Hilfe brauchen)

Durch IMAP brauche ich ja auch das SMTP dann nicht mehr ?


Viele Grüße

Volker.
 

mihe7

Top Contributor
Nun habe ich aber das Problem (ich will mit den eMails abläufe steuern ...) dass ich immer die "neuen" eMails brauche (die "alten" wurden ja schon verarbeitet).
Wenn Du damit etwas steuern willst, würde ich von POP abraten. POP ist ein sehr einfaches System, das darauf ausgelegt ist, Nachrichten von einem Server herunterzuladen und anschließend zu löschen. Wenn Du das konsequent durchziehst, bekommst Du natürlich immer nur neue Nachrichten. POP hat aber einen entscheidenden Nachteil: Du musst pollen, um neue Nachrichten zu erhalten.

Bei IMAP ist das anders. Da kannst Du Dich in der Regel vom Server aktiv informieren lassen, sobald eine neue Mail reinkommt.
 
K

kneitzel

Gast
Hallo,

mit diesen Flags wäre mir das schon lieber.

Dann werde ich mir dieses IMAP mal antuen (werde bestimmt Eure Hilfe brauchen)

Durch IMAP brauche ich ja auch das SMTP dann nicht mehr ?


Viele Grüße

Volker.
IMAP ist nur zum Versenden von Emails. Du versendest Emails immer noch per SMTP.
Aber wenn Du eine Email versendest, dann kannst Du die Emails auch ablegen. Also beim Editieren kannst Du in einem Ordner den Entwurf speichern. Wenn die Email gesendet werden soll, dann landet sie in einer Outbox. Wenn Du sie dann erfolgreich senden konntest, dann schiebst Du sie in den Gesendet Ordner.

Aber Senden musst Du die Email immer noch aktiv per SMTP.
 

volkerk

Mitglied
Hallo,

danke für den Hinweis (hätte nun beinahe den SMTP teil rausgelöscht)

Das lesen mit imap habe ich eben hinbekommen und siehe da die Flags sind gesetzt.

Dann mache ich jetzt vielleicht doch weiter.

Danke

Viele Grüsse

Volker
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W JavaMail mit OAuth2 an O365 Allgemeine Java-Themen 2
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
X Fragen zur Javamail API und Gmail Allgemeine Java-Themen 4
Dann07 Problem mit JavaMail API Allgemeine Java-Themen 26
V Java8 und JavaMail Allgemeine Java-Themen 27
U Javamail Allgemeine Java-Themen 12
OnDemand JavaMail ohne Anhang senden Allgemeine Java-Themen 4
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
L ClassCastException (JavaMail API) Allgemeine Java-Themen 3
M JavaMail Spam-Ordner Allgemeine Java-Themen 2
J javamail --- UnsupportedDataTypeException Allgemeine Java-Themen 6
N [GWT] JavaMail kommt nicht an Allgemeine Java-Themen 9
T JavaMail: "No provider for imaps" Allgemeine Java-Themen 2
B JavaMail Allgemeine Java-Themen 10
GUI-Programmer JavaMail - Anhang hochladen vor senden der Nachricht Allgemeine Java-Themen 4
F JavaMail - Lokale eMail-Datei einlesen und parsen? Allgemeine Java-Themen 9
K Javamail:Probleme mit der Darstellung von Umlaute in Subject Allgemeine Java-Themen 15
Mike90 JavaMail: Betreff bei POP3 nicht abrufbar Allgemeine Java-Themen 2
hdi JavaMail Lib einbinden? Allgemeine Java-Themen 5
B JavaMail + Bouncy Castle: isEncrypted Allgemeine Java-Themen 3
N Again - JavaMail Allgemeine Java-Themen 4
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
J JavaMail nur mit JEE? Allgemeine Java-Themen 4
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R Javamail Allgemeine Java-Themen 5
V Source zu Javamail? Allgemeine Java-Themen 2
F Umlaute: E-Mail per JavaMail und Textfile Allgemeine Java-Themen 5
G Javamail Nachricht senden: Betreff und Header fehlen Allgemeine Java-Themen 4
G Frage zu JAVAMail Allgemeine Java-Themen 10
T JavaMail versendet Schrott Allgemeine Java-Themen 9
C Probleme mit JavaMail und JAR-File Allgemeine Java-Themen 10
S JavaMail --> HTML-Mail verschicken? Allgemeine Java-Themen 7
J Externe File Emails für JavaMail Allgemeine Java-Themen 4
D JavaMail SMTP Fehlermeldung Allgemeine Java-Themen 2
D JavaMail Fehlermeldung Allgemeine Java-Themen 4
Luma JavaMail, Was versteht sich unter der CDDL Lizenz Allgemeine Java-Themen 6
G JavaMail API Allgemeine Java-Themen 4
S Mit javamail kompiliertes Programm läuft nicht ohne jar's Allgemeine Java-Themen 6
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
R JavaMail + Lotus Notes Allgemeine Java-Themen 8
S JavaMail: Problem mit SecurityException Allgemeine Java-Themen 2
P Probleme mit javaMail Allgemeine Java-Themen 2
M JavaMail? Allgemeine Java-Themen 3
D JavaMail - Authenticator Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben