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 .