API JavaMail - Server IMAP
IMAP è l'acronimo di Internet Message Access Protocol. È un protocollo Internet a livello di applicazione che consente a un client di posta elettronica di accedere alla posta elettronica su un server di posta remoto. Un server IMAP è in genere in ascolto sulla nota porta 143. IMAP su SSL (IMAPS) è assegnato al numero di porta 993.
IMAP supporta le modalità di funzionamento sia online che offline. I client di posta elettronica che utilizzano IMAP generalmente lasciano i messaggi sul server fino a quando l'utente non li elimina esplicitamente.
Pacchetto com.sun.mail.imapè un provider di protocollo IMAP per l'API JavaMail che fornisce l'accesso a un archivio di messaggi IMAP. La tabella seguente elenca l'interfaccia e le classi di questo provider:
Classe / Interfaccia | Descrizione |
---|---|
IMAPFolder.ProtocolCommand | Questa è una semplice interfaccia per i comandi del protocollo IMAP definiti dall'utente. |
ACL | Questa è una classe. Una voce dell'elenco di controllo di accesso per un particolare identificatore di autenticazione (utente o gruppo). |
IMAPFolder | Questa classe implementa una cartella IMAP. |
IMAPFolder.FetchProfileItem | Questa è una classe per il recupero delle intestazioni. |
IMAPMessage | Questa classe implementa un oggetto ReadableMime. |
IMAPMessage.FetchProfileCondition | Questa classe implementa il test da eseguire su ogni messaggio nella cartella. |
IMAPSSLStore | Questa classe fornisce l'accesso a un archivio di messaggi IMAP su SSL. |
IMAPStore | Questa classe fornisce l'accesso a un archivio di messaggi IMAP. |
Diritti | Questa classe rappresenta la serie di diritti per un identificatore di autenticazione (ad esempio, un utente o un gruppo). |
Diritti | Questa classe interna rappresenta un diritto individuale. |
SortTerm | Un particolare criterio di ordinamento, come definito da RFC 5256. |
Alcuni punti da notare sopra questo provider:
Questo provider supporta entrambi i protocolli IMAP4 e IMAP4rev1.
Un IMAPStore connesso mantiene un pool di oggetti del protocollo IMAP da utilizzare nella comunicazione con il server IMAP. Quando le cartelle vengono aperte e sono necessari nuovi oggetti del protocollo IMAP, IMAPStore li fornirà dal pool di connessioni o li creerà se nessuno è disponibile. Quando una cartella viene chiusa, il relativo oggetto protocollo IMAP viene restituito al pool di connessioni se il pool.
L'oggetto IMAPStore connesso può o meno mantenere un oggetto protocollo IMAP separato che fornisce all'archivio una connessione dedicata al server IMAP.
Il provider del protocollo IMAP supporta le seguenti proprietà, che possono essere impostate nell'oggetto JavaMail Session. Le proprietà sono sempre impostate come stringhe; ilType colonna descrive come viene interpretata la stringa.
Nome | genere | Descrizione |
---|---|---|
mail.imap.user | Corda | Nome utente predefinito per IMAP. |
mail.imap.host | Corda | Il server IMAP a cui connettersi. |
mail.imap.port | int | La porta del server IMAP a cui connettersi, se il metodo connect () non ne specifica esplicitamente una. Il valore predefinito è 143. |
mail.imap.partialfetch | booleano | Controlla se deve essere utilizzata la funzionalità di recupero parziale IMAP. Il valore predefinito è vero. |
mail.imap.fetchsize | int | Dimensioni del recupero parziale in byte. Il valore predefinito è 16K. |
mail.imap.ignorebodystructuresize | booleano | La risposta IMAP BODYSTRUCTURE include le dimensioni esatte di ciascuna parte del corpo. Normalmente, questa dimensione viene utilizzata per determinare la quantità di dati da recuperare per ciascuna parte del corpo. Il valore predefinito è false. |
mail.imap.connectiontimeout | int | Valore di timeout della connessione socket in millisecondi. L'impostazione predefinita è timeout infinito. |
mail.imap.timeout | int | Valore timeout I / O socket in millisecondi. L'impostazione predefinita è timeout infinito. |
mail.imap.statuscachetimeout | int | Valore di timeout in millisecondi per la cache della risposta al comando STATUS. L'impostazione predefinita è 1000 (1 secondo). Zero disabilita la cache. |
mail.imap.appendbuffersize | int | Dimensione massima di un messaggio da memorizzare nel buffer quando viene aggiunto a una cartella IMAP. |
mail.imap.connectionpoolsize | int | Numero massimo di connessioni disponibili nel pool di connessioni. L'impostazione predefinita è 1. |
mail.imap.connectionpooltimeout | int | Valore di timeout in millisecondi per le connessioni del pool di connessioni. L'impostazione predefinita è 45000 (45 secondi). |
mail.imap.separatestoreconnection | booleano | Flag per indicare se utilizzare una connessione store dedicata per i comandi di store. L'impostazione predefinita è false. |
mail.imap.auth.login.disable | booleano | Se true, impedisce l'uso del comando AUTHENTICATE LOGIN non standard, invece del semplice comando LOGIN. L'impostazione predefinita è false. |
mail.imap.auth.plain.disable | booleano | Se true, impedisce l'uso del comando AUTHENTICATE PLAIN. L'impostazione predefinita è false. |
mail.imap.auth.ntlm.disable | booleano | Se true, impedisce l'utilizzo del comando AUTHENTICATE NTLM. L'impostazione predefinita è false. |
mail.imap.proxyauth.user | Corda | Se il server supporta l'estensione PROXYAUTH, questa proprietà specifica il nome dell'utente con cui agire. Autenticarsi al server utilizzando le credenziali dell'amministratore. Dopo l'autenticazione, il provider IMAP emetterà il comando PROXYAUTH con il nome utente specificato in questa proprietà. |
mail.imap.localaddress | Corda | Indirizzo locale (nome host) a cui collegarsi durante la creazione del socket IMAP. Il valore predefinito è l'indirizzo scelto dalla classe Socket. |
mail.imap.localport | int | Numero di porta locale a cui collegarsi durante la creazione del socket IMAP. Il valore predefinito è il numero di porta selezionato dalla classe Socket. |
mail.imap.sasl.enable | booleano | Se impostato su true, provare a utilizzare il pacchetto javax.security.sasl per scegliere un meccanismo di autenticazione per l'accesso. Il valore predefinito è false. |
mail.imap.sasl.mechanisms | Corda | Uno spazio o un elenco separato da virgole di nomi di meccanismi SASL da provare a utilizzare. |
mail.imap.sasl.authorizationid | Corda | L'ID di autorizzazione da utilizzare nell'autenticazione SASL. Se non impostato, viene utilizzato l'ID di autenticazione (nome utente). |
mail.imap.sasl.realm | Corda | Il regno da utilizzare con i meccanismi di autenticazione SASL che richiedono un dominio, come DIGEST-MD5. |
mail.imap.auth.ntlm.domain | Corda | Il dominio di autenticazione NTLM. |
mail.imap.auth.ntlm.flags | int | Flag specifici del protocollo NTLM. |
mail.imap.socketFactory | Fabbrica di prese | Se impostata su una classe che implementa l'interfaccia javax.net.SocketFactory, questa classe verrà utilizzata per creare socket IMAP. |
mail.imap.socketFactory.class | Corda | Se impostato, specifica il nome di una classe che implementa l'interfaccia javax.net.SocketFactory. Questa classe verrà utilizzata per creare socket IMAP. |
mail.imap.socketFactory.fallback | booleano | Se impostato su true, la mancata creazione di un socket utilizzando la classe socket factory specificata causerà la creazione del socket utilizzando la classe java.net.Socket. Il valore predefinito è vero. |
mail.imap.socketFactory.port | int | Specifica la porta a cui connettersi quando si utilizza la produzione socket specificata. La porta predefinita viene utilizzata quando non è impostata. |
mail.imap.ssl.enable | booleano | Se impostato su true, utilizza SSL per connetterti e utilizza la porta SSL per impostazione predefinita. Il valore predefinito è false per il protocollo "imap" e true per il protocollo "imaps". |
mail.imap.ssl.checkserveridentity | booleano | Se impostato su true, controlla l'identità del server come specificato da RFC 2595. Il valore predefinito è false. |
mail.imap.ssl.trust | Corda | Se impostato e non è stato specificato un factory socket, abilita l'uso di MailSSLSocketFactory. Se impostato su "*", tutti gli host sono affidabili. Se impostato su un elenco di host separati da spazi bianchi, tali host sono considerati attendibili. In caso contrario, l'attendibilità dipende dal certificato presentato dal server. |
mail.imap.ssl.socketFactory | Fabbrica socket SSL | Se impostata su una classe che estende la classe javax.net.ssl.SSLSocketFactory, questa classe verrà utilizzata per creare socket SSL IMAP. |
mail.imap.ssl.socketFactory.class | Corda | Se impostato, specifica il nome di una classe che estende la classe javax.net.ssl.SSLSocketFactory. Questa classe verrà utilizzata per creare socket SSL IMAP. |
mail.imap.ssl.socketFactory.port | int | Specifica la porta a cui connettersi quando si utilizza la produzione socket specificata. Se non impostata, verrà utilizzata la porta predefinita. |
mail.imap.ssl.protocols | corda | Specifica i protocolli SSL che verranno abilitati per le connessioni SSL. Il valore della proprietà è un elenco separato da spazi di token accettabili per il metodo javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.imap.starttls.enable | booleano | Se true, abilita l'uso del comando STARTTLS (se supportato dal server) per passare la connessione a una connessione protetta da TLS prima di emettere qualsiasi comando di accesso. L'impostazione predefinita è false. |
mail.imap.starttls.required | booleano | Se vero, richiede l'uso del comando STARTTLS. Se il server non supporta il comando STARTTLS o il comando non riesce, il metodo di connessione fallirà. Il valore predefinito è false. |
mail.imap.socks.host | corda | Specifica il nome host di un server proxy SOCKS5 che verrà utilizzato per le connessioni al server di posta. |
mail.imap.socks.port | corda | Specifica il numero di porta per il server proxy SOCKS5. Dovrebbe essere utilizzato solo se il server proxy non utilizza il numero di porta standard 1080. |
mail.imap.minidletime | int | Questa proprietà imposta il ritardo in millisecondi. Se non impostato, il valore predefinito è 10 millisecondi. |
mail.imap.enableimapevents | booleano | Abilita il recapito di eventi speciali specifici per IMAP al ConnectionListener dello Store. Se true, le risposte non richieste ricevute durante il metodo di inattività dello Store verranno inviate come ConnectionEvents con un tipo di IMAPStore.RESPONSE. Il messaggio dell'evento sarà la stringa di risposta IMAP non elaborata. Per impostazione predefinita, questi eventi non vengono inviati. |
mail.imap.folder.class | Corda | Nome classe di una sottoclasse di com.sun.mail.imap.IMAPFolder. La sottoclasse può essere utilizzata per fornire supporto per ulteriori comandi IMAP. La sottoclasse deve avere costruttori pubblici nel formato MyIMAPFolder pubblico (String fullName, separatore di caratteri, archivio IMAPStore, Boolean isNamespace) e MyIMAPFolder pubblico (ListInfo li, archivio IMAPStore) |
In generale, le applicazioni non dovrebbero aver bisogno di utilizzare direttamente le classi in questo pacchetto. Invece, dovrebbero utilizzare le API definite dal pacchetto javax.mail (e dai sottopacchetti). Le applicazioni non dovrebbero mai creare istanze di IMAPStore o IMAPFolder direttamente. Invece, dovrebbero utilizzare il metodo getStore Session per acquisire un oggetto Store appropriato e da quello acquisire oggetti Folder.
Esempi di utilizzo del server IMAP sono illustrati nel capitolo Gestione delle quote .