JavaMail API - IMAP Server
IMAP ist die Abkürzung für Internet Message Access Protocol. Es handelt sich um ein Application Layer-Internetprotokoll, mit dem ein E-Mail-Client auf einem Remote-Mailserver auf E-Mails zugreifen kann. Ein IMAP-Server überwacht normalerweise den bekannten Port 143. IMAP über SSL (IMAPS) wird der Portnummer 993 zugewiesen.
IMAP unterstützt sowohl Online- als auch Offline-Betriebsmodi. E-Mail-Clients, die IMAP verwenden, hinterlassen im Allgemeinen Nachrichten auf dem Server, bis der Benutzer sie explizit löscht.
Paket com.sun.mail.imapist ein IMAP-Protokollanbieter für die JavaMail-API, der den Zugriff auf einen IMAP-Nachrichtenspeicher ermöglicht. In der folgenden Tabelle sind die Schnittstelle und Klassen dieses Anbieters aufgeführt:
Klasse / Schnittstelle | Beschreibung |
---|---|
IMAPFolder.ProtocolCommand | Dies ist eine einfache Schnittstelle für benutzerdefinierte IMAP-Protokollbefehle. |
ACL | Dies ist eine Klasse. Ein Eintrag in der Zugriffssteuerungsliste für eine bestimmte Authentifizierungskennung (Benutzer oder Gruppe). |
IMAPFolder | Diese Klasse implementiert einen IMAP-Ordner. |
IMAPFolder.FetchProfileItem | Dies ist eine Klasse zum Abrufen von Headern. |
IMAPMessage | Diese Klasse implementiert ein ReadableMime-Objekt. |
IMAPMessage.FetchProfileCondition | Diese Klasse implementiert den Test, der für jede Nachricht im Ordner durchgeführt werden soll. |
IMAPSSLStore | Diese Klasse bietet Zugriff auf einen IMAP-Nachrichtenspeicher über SSL. |
IMAPStore | Diese Klasse bietet Zugriff auf einen IMAP-Nachrichtenspeicher. |
Rechte | Diese Klasse repräsentiert die Rechte für eine Authentifizierungskennung (z. B. einen Benutzer oder eine Gruppe). |
Rechte | Diese innere Klasse repräsentiert ein individuelles Recht. |
SortTerm | Ein bestimmtes Sortierkriterium gemäß RFC 5256. |
Einige Punkte, die über diesem Anbieter zu beachten sind:
Dieser Anbieter unterstützt sowohl das IMAP4- als auch das IMAP4rev1-Protokoll.
Ein verbundener IMAPStore verwaltet einen Pool von IMAP-Protokollobjekten zur Verwendung bei der Kommunikation mit dem IMAP-Server. Wenn Ordner geöffnet werden und neue IMAP-Protokollobjekte benötigt werden, stellt der IMAPStore diese aus dem Verbindungspool bereit oder erstellt sie, wenn keine verfügbar sind. Wenn ein Ordner geschlossen wird, wird sein IMAP-Protokollobjekt an den Verbindungspool zurückgegeben, wenn der Pool vorhanden ist.
Das verbundene IMAPStore-Objekt kann ein separates IMAP-Protokollobjekt verwalten oder nicht, das dem Speicher eine dedizierte Verbindung zum IMAP-Server bereitstellt.
Der IMAP-Protokollanbieter unterstützt die folgenden Eigenschaften, die im JavaMail-Sitzungsobjekt festgelegt werden können. Die Eigenschaften werden immer als Zeichenfolgen festgelegt. dasType Spalte beschreibt, wie die Zeichenfolge interpretiert wird.
Name | Art | Beschreibung |
---|---|---|
mail.imap.user | String | Standardbenutzername für IMAP. |
mail.imap.host | String | Der IMAP-Server, zu dem eine Verbindung hergestellt werden soll. |
mail.imap.port | int | Der IMAP-Server-Port, zu dem eine Verbindung hergestellt werden soll, wenn die connect () -Methode keinen explizit angibt. Der Standardwert ist 143. |
mail.imap.partialfetch | Boolescher Wert | Steuert, ob die IMAP-Teilabruffunktion verwendet werden soll. Der Standardwert ist true. |
mail.imap.fetchsize | int | Teilweise Abrufgröße in Bytes. Der Standardwert ist 16 KB. |
mail.imap.ignorebodystructuresize | Boolescher Wert | Die IMAP BODYSTRUCTURE-Antwort enthält die genaue Größe jedes Körperteils. Normalerweise wird diese Größe verwendet, um zu bestimmen, wie viele Daten für jedes Körperteil abgerufen werden sollen. Der Standardwert ist false. |
mail.imap.connectiontimeout | int | Zeitlimit für Socket-Verbindung in Millisekunden. Standard ist eine unendliche Zeitüberschreitung. |
mail.imap.timeout | int | Socket-E / A-Zeitlimitwert in Millisekunden. Standard ist eine unendliche Zeitüberschreitung. |
mail.imap.statuscachetimeout | int | Zeitlimitwert in Millisekunden für den Cache der STATUS-Befehlsantwort. Die Standardeinstellung ist 1000 (1 Sekunde). Null deaktiviert den Cache. |
mail.imap.appendbuffersize | int | Maximale Größe einer Nachricht, die beim Anhängen an einen IMAP-Ordner im Speicher gepuffert werden soll. |
mail.imap.connectionpoolsize | int | Maximale Anzahl verfügbarer Verbindungen im Verbindungspool. Standard ist 1. |
mail.imap.connectionpooltimeout | int | Zeitlimitwert in Millisekunden für Verbindungspoolverbindungen. Die Standardeinstellung ist 45000 (45 Sekunden). |
mail.imap.separatestoreconnection | Boolescher Wert | Flag, um anzugeben, ob eine dedizierte Speicherverbindung für Speicherbefehle verwendet werden soll. Standard ist falsch. |
mail.imap.auth.login.disable | Boolescher Wert | Wenn true, wird die Verwendung des nicht standardmäßigen Befehls AUTHENTICATE LOGIN anstelle des einfachen Befehls LOGIN verhindert. Standard ist falsch. |
mail.imap.auth.plain.disable | Boolescher Wert | Wenn true, wird die Verwendung des Befehls AUTHENTICATE PLAIN verhindert. Standard ist falsch. |
mail.imap.auth.ntlm.disable | Boolescher Wert | Wenn true, wird die Verwendung des Befehls AUTHENTICATE NTLM verhindert. Standard ist falsch. |
mail.imap.proxyauth.user | String | Wenn der Server die Erweiterung PROXYAUTH unterstützt, gibt diese Eigenschaft den Namen des Benutzers an, als den er fungieren soll. Authentifizieren Sie sich beim Server mit den Anmeldeinformationen des Administrators. Nach der Authentifizierung gibt der IMAP-Anbieter den Befehl PROXYAUTH mit dem in dieser Eigenschaft angegebenen Benutzernamen aus. |
mail.imap.localaddress | String | Lokale Adresse (Hostname), an die beim Erstellen des IMAP-Sockets gebunden werden soll. Der Standardwert ist die von der Socket-Klasse ausgewählte Adresse. |
mail.imap.localport | int | Lokale Portnummer, an die beim Erstellen des IMAP-Sockets gebunden werden soll. Der Standardwert ist die von der Socket-Klasse ausgewählte Portnummer. |
mail.imap.sasl.enable | Boolescher Wert | Wenn true festgelegt ist, versuchen Sie, mit dem Paket javax.security.sasl einen Authentifizierungsmechanismus für die Anmeldung auszuwählen. Der Standardwert ist false. |
mail.imap.sasl.mechanisms | String | Eine durch Leerzeichen oder Kommas getrennte Liste von SASL-Mechanismusnamen, die verwendet werden sollen. |
mail.imap.sasl.authorizationid | String | Die Autorisierungs-ID, die für die SASL-Authentifizierung verwendet werden soll. Wenn nicht festgelegt, wird die Authentifizierungs-ID (Benutzername) verwendet. |
mail.imap.sasl.realm | String | Der Bereich, der mit SASL-Authentifizierungsmechanismen verwendet werden soll, für die ein Bereich erforderlich ist, z. B. DIGEST-MD5. |
mail.imap.auth.ntlm.domain | String | Die NTLM-Authentifizierungsdomäne. |
mail.imap.auth.ntlm.flags | int | NTLM-protokollspezifische Flags. |
mail.imap.socketFactory | Steckdosenfabrik | Wenn diese Klasse auf eine Klasse festgelegt ist, die die Schnittstelle javax.net.SocketFactory implementiert, wird diese Klasse zum Erstellen von IMAP-Sockets verwendet. |
mail.imap.socketFactory.class | String | Wenn festgelegt, wird der Name einer Klasse angegeben, die die Schnittstelle javax.net.SocketFactory implementiert. Diese Klasse wird zum Erstellen von IMAP-Sockets verwendet. |
mail.imap.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.imap.socketFactory.port | int | Gibt den Port an, an den eine Verbindung hergestellt werden soll, wenn die angegebene Socket-Factory verwendet wird. Der Standardport wird verwendet, wenn er nicht festgelegt ist. |
mail.imap.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 "imap" -Protokoll und true für das "imaps" -Protokoll. |
mail.imap.ssl.checkserveridentity | Boolescher Wert | Wenn true festgelegt ist, überprüfen Sie die Serveridentität gemäß RFC 2595. Der Standardwert ist false. |
mail.imap.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.imap.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 IMAP-SSL-Sockets verwendet. |
mail.imap.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 IMAP-SSL-Sockets verwendet. |
mail.imap.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.imap.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.imap.starttls.enable | Boolescher Wert | Wenn true, wird die Verwendung des STARTTLS-Befehls (sofern vom Server unterstützt) verwendet, um die Verbindung zu einer TLS-geschützten Verbindung zu wechseln, bevor Anmeldebefehle ausgegeben werden. Standard ist falsch. |
mail.imap.starttls.required | Boolescher Wert | Wenn true, muss der Befehl STARTTLS verwendet werden. Wenn der Server den Befehl STARTTLS nicht unterstützt oder der Befehl fehlschlägt, schlägt die Verbindungsmethode fehl. Der Standardwert ist false. |
mail.imap.socks.host | Zeichenfolge | Gibt den Hostnamen eines SOCKS5-Proxyservers an, der für Verbindungen zum Mailserver verwendet wird. |
mail.imap.socks.port | Zeichenfolge | Gibt die Portnummer für den SOCKS5-Proxyserver an. Dies sollte nur verwendet werden müssen, wenn der Proxyserver nicht die Standardportnummer 1080 verwendet. |
mail.imap.minidletime | int | Diese Eigenschaft legt die Verzögerung in Millisekunden fest. Wenn nicht festgelegt, beträgt der Standardwert 10 Millisekunden. |
mail.imap.enableimapevents | Boolescher Wert | Aktivieren Sie die Übermittlung spezieller IMAP-spezifischer Ereignisse an den ConnectionListener des Stores. Wenn dies der Fall ist, werden unerwünschte Antworten, die während der Leerlaufmethode des Stores empfangen wurden, als ConnectionEvents mit dem Typ IMAPStore.RESPONSE gesendet. Die Nachricht des Ereignisses ist die rohe IMAP-Antwortzeichenfolge. Standardmäßig werden diese Ereignisse nicht gesendet. |
mail.imap.folder.class | String | Klassenname einer Unterklasse von com.sun.mail.imap.IMAPFolder. Die Unterklasse kann verwendet werden, um zusätzliche IMAP-Befehle zu unterstützen. Die Unterklasse muss öffentliche Konstruktoren der Form public MyIMAPFolder (Zeichenfolge fullName, Zeichentrennzeichen, IMAPStore-Speicher, Boolescher isNamespace) und public MyIMAPFolder (ListInfo li, IMAPStore-Speicher) enthalten. |
Im Allgemeinen sollten Anwendungen die Klassen in diesem Paket nicht direkt verwenden müssen. Stattdessen sollten sie die APIs verwenden, die durch das Paket javax.mail (und Unterpakete) definiert sind. Anwendungen sollten niemals Instanzen von IMAPStore oder IMAPFolder 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 IMAP-Servers finden Sie im Kapitel Kontingentverwaltung .