JavaMail API - POP3 Server

Post Office Protocol (POP) ist ein Internet-Standardprotokoll auf Anwendungsebene, das von lokalen E-Mail-Clients verwendet wird, um E-Mails von einem Remote-Server über eine TCP / IP-Verbindung abzurufen. POP unterstützt einfache Download- und Löschanforderungen für den Zugriff auf Remotepostfächer. Ein POP3-Server überwacht den bekannten Port 110.

Paket com.sun.mail.pop3ist ein POP3-Protokollanbieter für die JavaMail-API, der den Zugriff auf einen POP3-Nachrichtenspeicher ermöglicht. In der folgenden Tabelle sind die Klassen in diesem Paket aufgeführt:

Name Beschreibung
POP3Folder Ein POP3-Ordner (kann nur "INBOX" sein).
POP3Message Eine POP3-Nachricht.
POP3SSLStore Ein POP3-Nachrichtenspeicher mit SSL.
POP3Store Ein POP3-Nachrichtenspeicher.

Einige Punkte, die über diesem Anbieter zu beachten sind:

  • Der POP3-Anbieter unterstützt nur einen einzigen Ordner mit dem Namen INBOX. Aufgrund der Einschränkungen des POP3-Protokolls sind viele der JavaMail-API-Funktionen wie Ereignisbenachrichtigung, Ordnerverwaltung, Flaggenverwaltung usw. nicht zulässig.

  • Auf den POP3-Anbieter wird über die JavaMail-APIs unter Verwendung des Protokollnamens pop3 oder einer URL der Form pop3: // Benutzer: Kennwort @ Host: Port / INBOX "zugegriffen .

  • POP3 unterstützt keine permanenten Flags. Beispielsweise wird das Flag Flags.Flag.RECENT für POP3-Nachrichten niemals gesetzt. Es ist auf die Anwendung zu bestimmen , welche Nachrichten in einem POP3 - Postfach sind neu .

  • POP3 unterstützt die Folder.expunge () -Methode nicht. Um Nachrichten zu löschen und zu löschen, setzen Sie das Flag Flags.Flag.DELETED für die Nachrichten und schließen Sie den Ordner mit der Methode Folder.close (true).

  • POP3 gibt kein Empfangsdatum an , daher gibt die Methode getReceivedDate null zurück.

  • Wenn auf die Header einer POP3-Nachricht zugegriffen wird, ruft der POP3-Anbieter mit dem Befehl TOP alle Header ab, die dann zwischengespeichert werden.

  • Wenn auf den Inhalt einer POP3-Nachricht zugegriffen wird, verwendet der POP3-Anbieter den Befehl RETR, um die gesamte Nachricht abzurufen.

  • Die POP3Message.invalidate- Methode kann verwendet werden, um zwischengespeicherte Daten ungültig zu machen, ohne den Ordner zu schließen.

Der POP3-Protokollanbieter unterstützt die folgenden Eigenschaften, die im JavaMail-Sitzungsobjekt festgelegt werden können. Die Eigenschaften werden immer als Zeichenfolgen festgelegt. In der Spalte Typ wird beschrieben, wie die Zeichenfolge interpretiert wird.

Name Art Beschreibung
mail.pop3.user String Standardbenutzername für POP3.
mail.pop3.host String Der POP3-Server, zu dem eine Verbindung hergestellt werden soll.
mail.pop3.port int Der POP3-Server-Port, zu dem eine Verbindung hergestellt werden soll, wenn die connect () -Methode keinen explizit angibt. Der Standardwert ist 110.
mail.pop3.connectiontimeout int Zeitlimit für Socket-Verbindung in Millisekunden. Standard ist eine unendliche Zeitüberschreitung.
mail.pop3.timeout int Socket-E / A-Zeitlimitwert in Millisekunden. Standard ist eine unendliche Zeitüberschreitung.
mail.pop3.rsetbeforequit Boolescher Wert Senden Sie beim Schließen des Ordners einen POP3-RSET-Befehl, bevor Sie den Befehl QUIT senden. Standard ist falsch.
mail.pop3.message.class String Klassenname einer Unterklasse von com.sun.mail.pop3.POP3Message. Die Unterklasse kann verwendet werden, um (zum Beispiel) nicht standardmäßige Content-Type-Header zu verarbeiten. Die Unterklasse muss über einen öffentlichen Konstruktor der Form MyPOP3Message (Ordner f, int msgno) verfügen, der MessagingException auslöst.
mail.pop3.localaddress String Lokale Adresse (Hostname), an die beim Erstellen des POP3-Sockets gebunden werden soll. Der Standardwert ist die von der Socket-Klasse ausgewählte Adresse.
mail.pop3.localport int Lokale Portnummer, an die beim Erstellen des POP3-Sockets gebunden werden soll. Der Standardwert ist die von der Socket-Klasse ausgewählte Portnummer.
mail.pop3.apop.enable Boolescher Wert Wenn true festgelegt ist, verwenden Sie APOP anstelle von USER / PASS, um sich beim POP3-Server anzumelden, wenn der POP3-Server APOP unterstützt. APOP sendet einen Digest des Passworts anstelle des Klartext-Passworts. Der Standardwert ist false.
mail.pop3.socketFactory Steckdosenfabrik Wenn diese Klasse auf eine Klasse festgelegt ist, die die Schnittstelle javax.net.SocketFactory implementiert, wird diese Klasse zum Erstellen von POP3-Sockets verwendet.
mail.pop3.socketFactory.class String Wenn festgelegt, wird der Name einer Klasse angegeben, die die Schnittstelle javax.net.SocketFactory implementiert. Diese Klasse wird zum Erstellen von POP3-Sockets verwendet.
mail.pop3.socketFactory.fallback Boolescher Wert Wenn der Wert auf true gesetzt ist, wird der Socket mit der Klasse java.net.Socket erstellt, wenn kein Socket mit der angegebenen Socket-Factory-Klasse erstellt wird. Der Standardwert ist true.
mail.pop3.socketFactory.port int Gibt den Port an, an den eine Verbindung hergestellt werden soll, wenn die angegebene Socket-Factory verwendet wird. Wenn nicht festgelegt, wird der Standardport verwendet.
mail.pop3.ssl.enable Boolescher Wert Wenn true festgelegt ist, verwenden Sie SSL, um eine Verbindung herzustellen, und verwenden Sie standardmäßig den SSL-Port. Der Standardwert ist false für das "pop3" -Protokoll und true für das "pop3s" -Protokoll.
mail.pop3.ssl.checkserveridentity Boolescher Wert Wenn true festgelegt ist, überprüfen Sie die Serveridentität gemäß RFC 2595. Der Standardwert ist false.
mail.pop3.ssl.trust String Wenn festgelegt und keine Socket-Factory angegeben wurde, wird die Verwendung einer MailSSLSocketFactory aktiviert.
Bei der Einstellung "*" sind alle Hosts vertrauenswürdig.
Wenn eine durch Leerzeichen getrennte Liste von Hosts festgelegt ist, werden diese Hosts als vertrauenswürdig eingestuft.
Andernfalls hängt das Vertrauen von dem Zertifikat ab, das der Server vorlegt.
mail.pop3.ssl.socketFactory SSL Socket Factory Wenn diese Klasse auf eine Klasse festgelegt ist, die die Klasse javax.net.ssl.SSLSocketFactory erweitert, wird diese Klasse zum Erstellen von POP3-SSL-Sockets verwendet.
mail.pop3.ssl.socketFactory.class String Wenn festgelegt, wird der Name einer Klasse angegeben, die die Klasse javax.net.ssl.SSLSocketFactory erweitert. Diese Klasse wird zum Erstellen von POP3-SSL-Sockets verwendet.
mail.pop3.ssl.socketFactory.port int Gibt den Port an, an den eine Verbindung hergestellt werden soll, wenn die angegebene Socket-Factory verwendet wird. Wenn nicht festgelegt, wird der Standardport verwendet.
mail.pop3.ssl.protocols Zeichenfolge Gibt die SSL-Protokolle an, die für SSL-Verbindungen aktiviert werden. Der Eigenschaftswert ist eine durch Leerzeichen getrennte Liste von Token, die für die Methode javax.net.ssl.SSLSocket.setEnabledProtocols akzeptabel sind.
mail.pop3.starttls.enable Boolescher Wert Wenn true, wird die Verwendung des STLS-Befehls (sofern vom Server unterstützt) verwendet, um die Verbindung zu einer TLS-geschützten Verbindung zu wechseln, bevor Anmeldebefehle ausgegeben werden. Der Standardwert ist false.
mail.pop3.starttls.required Boolescher Wert Wenn true, muss der Befehl STLS verwendet werden. Wenn der Server den STLS-Befehl nicht unterstützt oder der Befehl fehlschlägt, schlägt die Verbindungsmethode fehl. Der Standardwert ist false.
mail.pop3.socks.host Zeichenfolge Gibt den Hostnamen eines SOCKS5-Proxyservers an, der für Verbindungen zum Mailserver verwendet wird.
mail.pop3.socks.port Zeichenfolge Gibt die Portnummer für den SOCKS5-Proxyserver an.
mail.pop3.disabletop Boolescher Wert Bei true wird der Befehl POP3 TOP nicht zum Abrufen von Nachrichtenkopfzeilen verwendet. Der Standardwert ist false.
mail.pop3.forgettopheaders Boolescher Wert Bei true werden die Header, die möglicherweise mit dem Befehl POP3 TOP abgerufen wurden, vergessen und durch Header ersetzt, die im Rahmen des Befehls POP3 RETR abgerufen wurden. Der Standardwert ist false.
mail.pop3.filecache.enable Boolescher Wert Wenn true festgelegt ist, speichert der POP3-Anbieter Nachrichtendaten in einer temporären Datei und nicht im Speicher zwischen. Nachrichten werden nur beim Zugriff auf den Nachrichteninhalt zum Cache hinzugefügt. Nachrichtenkopfzeilen werden immer im Speicher zwischengespeichert (bei Bedarf). Der Dateicache wird entfernt, wenn der Ordner geschlossen wird oder die JVM beendet wird. Der Standardwert ist false.
mail.pop3.filecache.dir String Wenn der Dateicache aktiviert ist, kann diese Eigenschaft verwendet werden, um das vom JDK für temporäre Dateien verwendete Standardverzeichnis zu überschreiben.
mail.pop3.cachewriteto Boolescher Wert Steuert das Verhalten der writeTo-Methode für ein POP3-Nachrichtenobjekt. Wenn true festgelegt ist und der Nachrichteninhalt noch nicht zwischengespeichert wurde und ignoreList null ist, wird die Nachricht vor dem Schreiben zwischengespeichert. Andernfalls wird die Nachricht direkt in den Ausgabestream gestreamt, ohne zwischengespeichert zu werden. Der Standardwert ist false.
mail.pop3.keepmessagecontent Boolescher Wert Wenn diese Eigenschaft auf true gesetzt ist, wird ein fester Verweis auf den zwischengespeicherten Inhalt beibehalten, wodurch verhindert wird, dass der Speicher wiederverwendet wird, bis der Ordner geschlossen oder der zwischengespeicherte Inhalt explizit ungültig gemacht wird (mithilfe der Methode ungültig machen). Der Standardwert ist false.

Im Allgemeinen sollten Anwendungen die Klassen in diesem Paket nicht direkt verwenden. Stattdessen sollten sie die APIs verwenden, die durch das Paket javax.mail (und Unterpakete) definiert sind. Anwendungen sollten niemals Instanzen von POP3Store oder POP3Folder direkt erstellen . Stattdessen sollten sie die Sitzungsmethode getStore verwenden, um ein geeignetes Store-Objekt abzurufen und daraus Ordnerobjekte abzurufen.

Beispiele für die Verwendung des POP3-Servers finden Sie im Kapitel Überprüfen von E-Mails .