API JavaMail - Visão geral

A API JavaMail fornece uma estrutura independente de plataforma e protocolo para construir aplicativos de correio e mensagens. A API JavaMail fornece um conjunto de classes abstratas que definem objetos que compõem um sistema de correio. É um pacote opcional (extensão padrão) para leitura, composição e envio de mensagens eletrônicas.

JavaMail fornece elementos que são usados ​​para construir uma interface para um sistema de mensagens, incluindo componentes e interfaces do sistema. Embora esta especificação não defina nenhuma implementação específica, JavaMail inclui várias classes que implementam os padrões de mensagens da Internet RFC822 e MIME. Essas classes são fornecidas como parte do pacote de classes JavaMail.

A seguir estão alguns dos protocolos com suporte na API JavaMail:

  • SMTP: Acrônimo para Simple Mail Transfer Protocol. Ele fornece um mecanismo para entregar e-mail.

  • POP: Acrônimo para Post Office Protocol. POP é o mecanismo que a maioria das pessoas na Internet usa para obter seus e-mails. Ele define o suporte para uma única caixa de correio para cada usuário. RFC 1939 define este protocolo.

  • IMAP: Acrônimo para Internet Message Access Protocol. É um protocolo avançado para recebimento de mensagens. Ele fornece suporte para várias caixas de correio para cada usuário, além de que a caixa de correio pode ser compartilhada por vários usuários. É definido na RFC 2060.

  • MIME: Acrônimo para Multipurpose Internet Mail Extensions. . Não é um protocolo de transferência de correio. Em vez disso, define o conteúdo do que é transferido: o formato das mensagens, anexos e assim por diante. Existem muitos documentos diferentes que entram em vigor aqui: RFC 822, RFC 2045, RFC 2046 e RFC 2047. Como um usuário da API JavaMail, você geralmente não precisa se preocupar com esses formatos. No entanto, esses formatos existem e são usados ​​por seus programas.

  • NNTP and Others: Existem muitos protocolos fornecidos por fornecedores terceirizados. Alguns deles são Network News Transfer Protocol (NNTP), Secure Multipurpose Internet Mail Extensions (S / MIME) etc.

Os detalhes deles serão abordados nos capítulos subsequentes.

Arquitetura

Como dito acima, o aplicativo Java usa a API JavaMail para compor, enviar e receber e-mails. A figura a seguir ilustra a arquitetura do JavaMail:

O mecanismo abstrato da API JavaMail é semelhante a outras APIs J2EE, como JDBC, JNDI e JMS. Conforme visto no diagrama de arquitetura acima, a API JavaMail é dividida em duas partes principais:

  • Uma parte independente do aplicativo: uma interface de programação de aplicativo (API) é usada pelos componentes do aplicativo para enviar e receber mensagens de correio, independentemente do provedor ou protocolo subjacente usado.

  • Uma parte dependente de serviço: uma interface de provedor de serviço (SPI) fala os idiomas específicos do protocolo, como SMTP, POP, IMAP e Network News Transfer Protocol (NNTP). É usado para conectar um provedor de serviço de e-mail à plataforma J2EE.