API JavaMail - Server POP3

Post Office Protocol (POP) è un protocollo Internet standard a livello di applicazione utilizzato dai client di posta elettronica locali per recuperare la posta da un server remoto tramite una connessione TCP / IP. POP supporta semplici requisiti di download ed eliminazione per l'accesso alle caselle di posta remote. Un server POP3 è in ascolto sulla nota porta 110.

Pacchetto com.sun.mail.pop3è un provider di protocollo POP3 per l'API JavaMail che fornisce l'accesso a un archivio di messaggi POP3. La tabella seguente elenca le classi in questo pacchetto:

NomeDescrizione
POP3FolderUna cartella POP3 (può essere solo "INBOX").
POP3MessageUn messaggio POP3.
POP3SSLStoreUn archivio di messaggi POP3 che utilizza SSL.
POP3StoreUn archivio di messaggi POP3.

Alcuni punti da notare sopra questo provider:

  • Il provider POP3 supporta solo una singola cartella denominata INBOX. A causa delle limitazioni del protocollo POP3, molte delle funzionalità API JavaMail come la notifica degli eventi, la gestione delle cartelle, la gestione dei flag, ecc. Non sono consentite.

  • Si accede al provider POP3 tramite le API JavaMail utilizzando il nome del protocollo pop3 o un URL nella forma pop3: // user: password @ host: port / INBOX " .

  • POP3 non supporta flag permanenti. Ad esempio, il flag Flags.Flag.RECENT non verrà mai impostato per i messaggi POP3. Spetta all'applicazione determinare quali messaggi in una casella di posta POP3 sono nuovi .

  • POP3 non supporta il metodo Folder.expunge (). Per eliminare ed eliminare definitivamente i messaggi, impostare il flag Flags.Flag.DELETED sui messaggi e chiudere la cartella utilizzando il metodo Folder.close (true).

  • POP3 non fornisce una data di ricezione , quindi il metodo getReceivedDate restituirà null.

  • Quando si accede alle intestazioni di un messaggio POP3, il provider POP3 utilizza il comando TOP per recuperare tutte le intestazioni, che vengono quindi memorizzate nella cache.

  • Quando si accede al contenuto di un messaggio POP3, il provider POP3 utilizza il comando RETR per recuperare l'intero messaggio.

  • Il metodo POP3Message.invalidate può essere utilizzato per invalidare i dati memorizzati nella cache senza chiudere la cartella.

Il provider del protocollo POP3 supporta le seguenti proprietà, che possono essere impostate nell'oggetto JavaMail Session. Le proprietà sono sempre impostate come stringhe; la colonna Tipo descrive come viene interpretata la stringa.

NomegenereDescrizione
mail.pop3.userCordaNome utente predefinito per POP3.
mail.pop3.hostCordaIl server POP3 a cui connettersi.
mail.pop3.portintLa porta del server POP3 a cui connettersi, se il metodo connect () non ne specifica una esplicitamente. Il valore predefinito è 110.
mail.pop3.connectiontimeoutintValore di timeout della connessione socket in millisecondi. L'impostazione predefinita è timeout infinito.
mail.pop3.timeoutintValore timeout I / O socket in millisecondi. L'impostazione predefinita è timeout infinito.
mail.pop3.rsetbeforequitbooleanoInviare un comando POP3 RSET alla chiusura della cartella, prima di inviare il comando QUIT. L'impostazione predefinita è false.
mail.pop3.message.class CordaNome classe di una sottoclasse di com.sun.mail.pop3.POP3Message. La sottoclasse può essere utilizzata per gestire (ad esempio) intestazioni di tipo di contenuto non standard. La sottoclasse deve avere un costruttore pubblico nella forma MyPOP3Message (Folder f, int msgno) genera MessagingException.
mail.pop3.localaddressCordaIndirizzo locale (nome host) a cui collegarsi durante la creazione del socket POP3. Il valore predefinito è l'indirizzo scelto dalla classe Socket.
mail.pop3.localport intNumero di porta locale a cui collegarsi durante la creazione del socket POP3. Il valore predefinito è il numero di porta selezionato dalla classe Socket.
mail.pop3.apop.enable booleanoSe impostato su true, utilizzare APOP invece di USER / PASS per accedere al server POP3, se il server POP3 supporta APOP. APOP invia un digest della password invece della password in chiaro. Il valore predefinito è false.
mail.pop3.socketFactoryFabbrica di preseSe impostata su una classe che implementa l'interfaccia javax.net.SocketFactory, questa classe verrà utilizzata per creare socket POP3.
mail.pop3.socketFactory.classCordaSe impostato, specifica il nome di una classe che implementa l'interfaccia javax.net.SocketFactory. Questa classe verrà utilizzata per creare socket POP3.
mail.pop3.socketFactory.fallbackbooleanoSe 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.pop3.socketFactory.port intSpecifica la porta a cui connettersi quando si utilizza la produzione socket specificata. Se non impostata, verrà utilizzata la porta predefinita.
mail.pop3.ssl.enablebooleanoSe impostato su true, utilizza SSL per connetterti e utilizza la porta SSL per impostazione predefinita. Il valore predefinito è false per il protocollo "pop3" e true per il protocollo "pop3s".
mail.pop3.ssl.checkserveridentity booleanoSe impostato su true, controlla l'identità del server come specificato da RFC 2595. Il valore predefinito è false.
mail.pop3.ssl.trust CordaSe 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.pop3.ssl.socketFactoryFabbrica socket SSLSe impostata su una classe che estende la classe javax.net.ssl.SSLSocketFactory, questa classe verrà utilizzata per creare socket SSL POP3.
mail.pop3.ssl.socketFactory.class CordaSe impostato, specifica il nome di una classe che estende la classe javax.net.ssl.SSLSocketFactory. Questa classe verrà utilizzata per creare socket SSL POP3.
mail.pop3.ssl.socketFactory.port intSpecifica la porta a cui connettersi quando si utilizza la produzione socket specificata. Se non impostata, verrà utilizzata la porta predefinita.
mail.pop3.ssl.protocolscordaSpecifica 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.pop3.starttls.enable booleanoSe true, abilita l'uso del comando STLS (se supportato dal server) per passare la connessione a una connessione protetta da TLS prima di emettere qualsiasi comando di accesso. Il valore predefinito è false.
mail.pop3.starttls.required booleanoSe vero, richiede l'uso del comando STLS. Se il server non supporta il comando STLS o il comando non riesce, il metodo di connessione fallirà. Il valore predefinito è false.
mail.pop3.socks.hostcordaSpecifica il nome host di un server proxy SOCKS5 che verrà utilizzato per le connessioni al server di posta.
mail.pop3.socks.port cordaSpecifica il numero di porta per il server proxy SOCKS5.
mail.pop3.disabletop booleanoSe impostato su true, il comando POP3 TOP non verrà utilizzato per recuperare le intestazioni dei messaggi. Il valore predefinito è false.
mail.pop3.forgettopheadersbooleanoSe impostato su true, le intestazioni che potrebbero essere state recuperate utilizzando il comando POP3 TOP verranno dimenticate e sostituite dalle intestazioni recuperate come parte del comando POP3 RETR. Il valore predefinito è false.
mail.pop3.filecache.enablebooleanoSe impostato su true, il provider POP3 memorizzerà nella cache i dati dei messaggi in un file temporaneo anziché in memoria. I messaggi vengono aggiunti alla cache solo quando si accede al contenuto del messaggio. Le intestazioni dei messaggi vengono sempre memorizzate nella cache (su richiesta). La cache dei file viene rimossa quando la cartella viene chiusa o la JVM termina. Il valore predefinito è false.
mail.pop3.filecache.dir CordaSe la cache dei file è abilitata, questa proprietà può essere utilizzata per sovrascrivere la directory predefinita utilizzata da JDK per i file temporanei.
mail.pop3.cachewriteto booleanoControlla il comportamento del metodo writeTo su un oggetto messaggio POP3. Se impostato su true e il contenuto del messaggio non è stato ancora memorizzato nella cache e ignoreList è null, il messaggio viene memorizzato nella cache prima di essere scritto. In caso contrario, il messaggio viene inviato direttamente al flusso di output senza essere memorizzato nella cache. Il valore predefinito è false.
mail.pop3.keepmessagecontentbooleanoSe questa proprietà è impostata su true, verrà mantenuto un riferimento reale al contenuto memorizzato nella cache, impedendo il riutilizzo della memoria fino a quando la cartella non viene chiusa o il contenuto nella cache non viene esplicitamente invalidato (utilizzando il metodo invalidate). Il valore predefinito è false.

In generale, le applicazioni non dovrebbero 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 POP3Store o POP3Folder 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 POP3 sono illustrati nel capitolo Controllo delle e-mail .