API JavaMail - Servidores IMAP
IMAP é um acrônimo para Internet Message Access Protocol. É um protocolo de Internet da camada de aplicativo que permite que um cliente de e-mail acesse o e-mail em um servidor de e-mail remoto. Um servidor IMAP geralmente escuta na porta 143 conhecida. IMAP sobre SSL (IMAPS) é atribuído ao número de porta 993.
IMAP suporta modos de operação on-line e off-line. Os clientes de e-mail que usam IMAP geralmente deixam mensagens no servidor até que o usuário as exclua explicitamente.
Pacote com.sun.mail.imapé um provedor de protocolo IMAP para a API JavaMail que fornece acesso a um armazenamento de mensagem IMAP. A tabela a seguir lista a interface e as classes deste provedor:
Classe / Interface | Descrição |
---|---|
IMAPFolder.ProtocolCommand | Esta é uma interface simples para comandos de protocolo IMAP definidos pelo usuário. |
ACL | Esta é uma aula. Uma entrada da lista de controle de acesso para um identificador de autenticação específico (usuário ou grupo). |
IMAPFolder | Esta classe implementa uma pasta IMAP. |
IMAPFolder.FetchProfileItem | Esta é uma classe para buscar cabeçalhos. |
IMAPMessage | Esta classe implementa um objeto ReadableMime. |
IMAPMessage.FetchProfileCondition | Esta classe implementa o teste a ser feito em cada mensagem da pasta. |
IMAPSSLStore | Esta classe fornece acesso a um armazenamento de mensagens IMAP por SSL. |
IMAPStore | Esta classe fornece acesso a um armazenamento de mensagens IMAP. |
Direitos | Esta classe representa o conjunto de direitos para um identificador de autenticação (por exemplo, um usuário ou grupo). |
Rights.Right | Esta classe interna representa um direito individual. |
SortTerm | Um critério de classificação específico, conforme definido pela RFC 5256. |
Alguns pontos a serem observados acima deste provedor:
Este provedor oferece suporte aos protocolos IMAP4 e IMAP4rev1.
Um IMAPStore conectado mantém um pool de objetos de protocolo IMAP para uso na comunicação com o servidor IMAP. Conforme as pastas são abertas e novos objetos de protocolo IMAP são necessários, o IMAPStore irá fornecê-los do pool de conexão ou criá-los se nenhum estiver disponível. Quando uma pasta é fechada, seu objeto de protocolo IMAP é retornado ao pool de conexão do pool.
O objeto IMAPStore conectado pode ou não manter um objeto de protocolo IMAP separado que fornece ao armazenamento uma conexão dedicada ao servidor IMAP.
O provedor de protocolo IMAP suporta as seguintes propriedades, que podem ser definidas no objeto JavaMail Session. As propriedades são sempre definidas como strings; aType coluna descreve como a string é interpretada.
Nome | Tipo | Descrição |
---|---|---|
mail.imap.user | Corda | Nome de usuário padrão para IMAP. |
mail.imap.host | Corda | O servidor IMAP ao qual se conectar. |
mail.imap.port | int | A porta do servidor IMAP à qual se conectar, se o método connect () não especificar explicitamente uma. O padrão é 143. |
mail.imap.partialfetch | boleano | Controla se o recurso de busca parcial IMAP deve ser usado. O padrão é verdadeiro. |
mail.imap.fetchsize | int | Tamanho de busca parcial em bytes. O padrão é 16K. |
mail.imap.ignorebodystructuresize | boleano | A resposta IMAP BODYSTRUCTURE inclui o tamanho exato de cada parte do corpo. Normalmente, este tamanho é usado para determinar quantos dados buscar para cada parte do corpo. O padrão é falso. |
mail.imap.connectiontimeout | int | Valor de tempo limite de conexão do soquete em milissegundos. O padrão é tempo limite infinito. |
mail.imap.timeout | int | Valor de tempo limite de E / S do soquete em milissegundos. O padrão é tempo limite infinito. |
mail.imap.statuscachetimeout | int | Valor de tempo limite em milissegundos para o cache de resposta do comando STATUS. O padrão é 1000 (1 segundo). Zero desativa o cache. |
mail.imap.appendbuffersize | int | Tamanho máximo de uma mensagem para armazenar em buffer na memória ao anexar a uma pasta IMAP. |
mail.imap.connectionpoolsize | int | Número máximo de conexões disponíveis no pool de conexão. O padrão é 1. |
mail.imap.connectionpooltimeout | int | Valor de tempo limite em milissegundos para conexões do pool de conexão. O padrão é 45000 (45 segundos). |
mail.imap.separatestoreconnection | boleano | Sinalizador para indicar se deve ser usada uma conexão de armazenamento dedicada para comandos de armazenamento. O padrão é falso. |
mail.imap.auth.login.disable | boleano | Se verdadeiro, evita o uso do comando AUTHENTICATE LOGIN não padrão, em vez de usar o comando LOGIN simples. O padrão é falso. |
mail.imap.auth.plain.disable | boleano | Se verdadeiro, evita o uso do comando AUTHENTICATE PLAIN. O padrão é falso. |
mail.imap.auth.ntlm.disable | boleano | Se verdadeiro, evita o uso do comando AUTHENTICATE NTLM. O padrão é falso. |
mail.imap.proxyauth.user | Corda | Se o servidor suportar a extensão PROXYAUTH, esta propriedade especificará o nome do usuário para atuar. Autentique-se no servidor usando as credenciais do administrador. Após a autenticação, o provedor IMAP emitirá o comando PROXYAUTH com o nome de usuário especificado nesta propriedade. |
mail.imap.localaddress | Corda | Endereço local (nome do host) para vincular ao criar o soquete IMAP. O padrão é o endereço escolhido pela classe Socket. |
mail.imap.localport | int | Número da porta local para vincular ao criar o soquete IMAP. O padrão é o número da porta escolhido pela classe Socket. |
mail.imap.sasl.enable | boleano | Se definido como verdadeiro, tente usar o pacote javax.security.sasl para escolher um mecanismo de autenticação para login. O padrão é falso. |
mail.imap.sasl.mechanisms | Corda | Uma lista separada por espaço ou vírgula de nomes de mecanismo SASL para tentar usar. |
mail.imap.sasl.authorizationid | Corda | O ID de autorização a ser usado na autenticação SASL. Se não for definido, o ID de autenticação (nome do usuário) será usado. |
mail.imap.sasl.realm | Corda | O domínio a ser usado com os mecanismos de autenticação SASL que requerem um domínio, como DIGEST-MD5. |
mail.imap.auth.ntlm.domain | Corda | O domínio de autenticação NTLM. |
mail.imap.auth.ntlm.flags | int | Sinalizadores específicos do protocolo NTLM. |
mail.imap.socketFactory | Fábrica de Soquetes | Se definida como uma classe que implementa a interface javax.net.SocketFactory, esta classe será usada para criar sockets IMAP. |
mail.imap.socketFactory.class | Corda | Se definido, especifica o nome de uma classe que implementa a interface javax.net.SocketFactory. Esta classe será usada para criar sockets IMAP. |
mail.imap.socketFactory.fallback | boleano | Se definido como verdadeiro, a falha em criar um soquete usando a classe de fábrica de soquete especificada fará com que o soquete seja criado usando a classe java.net.Socket. O padrão é verdadeiro. |
mail.imap.socketFactory.port | int | Especifica a porta para conectar ao usar a fábrica de soquetes especificada. A porta padrão é usada quando não está definida. |
mail.imap.ssl.enable | boleano | Se definido como verdadeiro, use SSL para conectar e usar a porta SSL por padrão. O padrão é falso para o protocolo "imap" e verdadeiro para o protocolo "imaps". |
mail.imap.ssl.checkserveridentity | boleano | Se definido como verdadeiro, verifique a identidade do servidor conforme especificado pelo RFC 2595. O padrão é falso. |
mail.imap.ssl.trust | Corda | Se definido, e um socket factory não foi especificado, habilita o uso de MailSSLSocketFactory. Se definido como "*", todos os hosts são confiáveis. Se definido como uma lista de hosts separados por espaços em branco, esses hosts são confiáveis. Caso contrário, a confiança depende do certificado que o servidor apresenta. |
mail.imap.ssl.socketFactory | SSL Socket Factory | Se definida como uma classe que estende a classe javax.net.ssl.SSLSocketFactory, esta classe será usada para criar soquetes SSL IMAP. |
mail.imap.ssl.socketFactory.class | Corda | Se definido, especifica o nome de uma classe que estende a classe javax.net.ssl.SSLSocketFactory. Esta classe será usada para criar sockets IMAP SSL. |
mail.imap.ssl.socketFactory.port | int | Especifica a porta para conectar ao usar a fábrica de soquetes especificada. Se não for definida, a porta padrão será usada. |
mail.imap.ssl.protocols | corda | Especifica os protocolos SSL que serão ativados para conexões SSL. O valor da propriedade é uma lista separada por espaços em branco de tokens aceitáveis para o método javax.net.ssl.SSLSocket.setEnabledProtocols. |
mail.imap.starttls.enable | boleano | Se verdadeiro, habilita o uso do comando STARTTLS (se suportado pelo servidor) para mudar a conexão para uma conexão protegida por TLS antes de emitir qualquer comando de login. O padrão é falso. |
mail.imap.starttls.required | boleano | Se verdadeiro, requer o uso do comando STARTTLS. Se o servidor não suportar o comando STARTTLS ou se o comando falhar, o método de conexão falhará. O padrão é falso. |
mail.imap.socks.host | corda | Especifica o nome do host de um servidor proxy SOCKS5 que será usado para conexões com o servidor de e-mail. |
mail.imap.socks.port | corda | Especifica o número da porta para o servidor proxy SOCKS5. Deve ser usado apenas se o servidor proxy não estiver usando o número de porta padrão 1080. |
mail.imap.minidletime | int | Esta propriedade define o atraso em milissegundos. Se não for definido, o padrão é 10 milissegundos. |
mail.imap.enableimapevents | boleano | Habilite eventos específicos de IMAP especiais a serem entregues ao ConnectionListener da Loja. Se verdadeiro, as respostas não solicitadas recebidas durante o método ocioso da Loja serão enviadas como ConnectionEvents com um tipo de IMAPStore.RESPONSE. A mensagem do evento será a string de resposta IMAP bruta. Por padrão, esses eventos não são enviados. |
mail.imap.folder.class | Corda | Nome da classe de uma subclasse de com.sun.mail.imap.IMAPFolder. A subclasse pode ser usada para fornecer suporte para comandos IMAP adicionais. A subclasse deve ter construtores públicos da forma public MyIMAPFolder (String fullName, char separator, IMAPStore store, Boolean isNamespace) e public MyIMAPFolder (ListInfo li, IMAPStore store) |
Em geral, os aplicativos não precisam usar as classes deste pacote diretamente. Em vez disso, eles devem usar as APIs definidas pelo pacote javax.mail (e subpacotes). Os aplicativos nunca devem construir instâncias de IMAPStore ou IMAPFolder diretamente. Em vez disso, eles devem usar o método getStore de Session para adquirir um objeto Store apropriado e, a partir desse, objetos Folder.
Exemplos de uso do servidor IMAP são demonstrados no capítulo Gerenciamento de cotas .