Her mit den E-Mails: Mailempfang in Javamail

An dieser Stelle sei noch eine Warnung ausgesprochen: Die Kommunikation mit Mail-Servern hat selbst mit Javamail ihre Tücken, auch wenn man streng nach den FAQs vorgeht. So sollte für diesen Artikel ursprünglich Gmail, der Maildienst von Google mit seiner POP3-Unterstützung verwendet werden. Seltsamerweise ist der POP3-Dienst von Google aber nicht RFC-kompatibel, sodass gelesene Nachrichten sofort aus der Nachrichtenschlange gelöscht werden, egal was man unternimmt. Bei einem anderen Mail-Server interpretierte die Server-Version den RFC-Standard zur Authentifizierung ein wenig anders, wodurch es zu einem Anmeldefehler kam. Wie kann man solche Probleme umgehen? Äußerst hilfreich ist die Aktivierung des Javamail-Debugging. Wenn man die Session beginnt, kann man die setDebug-Methode aufrufen und so das Debugging aktivieren, welches dann den gesamten Verkehr zu und von der Konsole auflistet. Doch Vorsicht: Wenn man Anhänge empfängt, können recht große Abschnitte mit Base-64-kodiertem Text auftreten. Eine weitere Möglichkeit zum Starten des Debugging besteht darin, die Systemeigenschaft „mail.debug“ auf „true“ zu setzen.

Javamail besitzt eine ganze Reihe von Eigenschaften, die das Verhalten der Provider beeinflussen können. So umfasst beispielsweise mit POP3 der Standard-Provider Eigenschaften zur Steuerung von Zeitüberschreitungen, Authentifizierung und der Interaktion des Providers mit dem Mail-Server. Damit lassen sich viele der oben genannten Kompatibilitätsprobleme lösen. Diese Eigenschaften variieren je nach Provider-Implementierung. So zum Beispiel beim Standard-POP3-Provider: Manche POP3-Provider löschen automatisch gelesene Nachrichten beim Abmelden, wobei man den Maileingang jedoch mit dem Befehl POP3 RSET wieder in seinen Originalzustand zurücksetzen kann. Ist die Eigenschaft mail.pop3.rsetbeforequit auf „true“ gesetzt, kann dieses Verhalten im POP3-Provider aktiviert werden, wobei der Teil „pop3“ im Eigenschaftennamen den Namen des Providers angibt. Man sollte diesen also auf „pop3s“ setzen, wenn man sicheres POP3 nutzt. Hier der Code aus dem Beispiel, der diese Funktion für beide Fälle aktiviert und das Debugging einschaltet:

Nur um Zweifel auszuräumen: Dies hat keinerlei Auswirkung auf die POP3-Implementierung von Google Mail – nach dem Lesen ist die Nachricht verschwunden.

Der Sourcecode zu diesem Artikel kann mit der Datei mailretriever.zip heruntergelden werden.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Roblox: 34 Millionen Zugangsdaten im Darknet

Laut Kaspersky nehmen Infostealer gerade auch Spieleplattformen ins Visier. Neue Studie untersucht Angriffe zwischen 2021…

1 Woche ago

EU-Datenschützer kritisieren Facebooks „Zustimmung oder Bezahlung“-Modell

Ohne eine kostenlose Alternative, die ohne Zustimmung zur Verarbeitung personenbezogener Daten zu Werbezwecken auskommt, ist…

2 Wochen ago

Europol meldet Zerschlagung der Phishing-as-a-Service-Plattform LabHost

LabHost gilt als einer der größten Phishing-Dienstleister weltweit. Die Ermittler verhaften 37 Verdächtige, darunter der…

2 Wochen ago

DE-CIX Frankfurt bricht Schallmauer von 17 Terabit Datendurchsatz pro Sekunde

Neuer Datendurchsatz-Rekord an Europas größtem Internetknoten parallel zum Champions-League-Viertelfinale.

2 Wochen ago

Samsungs neuer LPDDR5X-DRAM erreicht 10,7 Gbit/s

Die neuen Chips bieten bis zu 25 Prozent mehr Leistung. Samsung steigert auch die Energieeffizienz…

2 Wochen ago

Cisco warnt vor massenhaften Brute-Force-Angriffen auf VPNs

Betroffen sind Lösungen von Cisco, Fortinet, SonicWall und anderen Anbietern. Die Hacker nehmen Konten mit…

2 Wochen ago