Skip to content
João Vitor Oliveira da Silva edited this page Mar 19, 2024 · 1 revision

JavaMail

Projeto destinado ao envio de e-mails através do Java com sua biblioteca nativa de interface gráfica de usuário (GUI) e a api JavaMail

Lembre-se de que, para usar esse código, você precisa ter uma conta no Gmail e permitir o acesso de aplicativos menos seguros nas configurações da sua conta

Esse código em Java demonstra como enviar um e-mail utilizando a biblioteca JavaMail. Vou explicar o que cada parte faz:

Propriedades

  1. SMTP (Simple Mail Transfer Protocol):
    • O protocolo utilizado para enviar e-mails.
    • Define as regras para a comunicação entre servidores de e-mail.
  2. SSL (Secure Sockets Layer):
    • Um protocolo de segurança que fornece criptografia para comunicações na internet.
    • No contexto de e-mail, o SSL é usado para proteger a conexão entre o cliente (seu aplicativo) e o servidor SMTP.
  3. TLS (Transport Layer Security):
    • Uma versão mais recente e segura do SSL.
    • O uso de TLS é preferível ao SSL atualmente.
  4. Autenticação:
    • A propriedade mail.smtp.auth indica que a autenticação será usada para se conectar ao servidor SMTP.
    • Isso permite que você faça login com suas credenciais (nome de usuário e senha) para enviar e-mails.
  5. StartTLS:
    • A propriedade mail.smtp.starttls.enable habilita o uso do StartTLS.
    • O StartTLS inicia uma conexão segura (criptografada) após a conexão inicial com o servidor SMTP.
  6. Porta do Servidor SMTP:
    • A propriedade mail.smtp.port define a porta do servidor SMTP.
    • A porta 465 é comumente usada para conexões SMTP seguras.
  7. SocketFactory:
    • A propriedade mail.smtp.socketFactory.port especifica a porta a ser usada para a conexão via socket.
    • A propriedade mail.smtp.socketFactory.class define a classe de fábrica de sockets a ser usada para criar a conexão.

Método de envio de e-mail

Configuração Inicial:

  • O método properties() configura as propriedades do servidor SMTP, como host, autenticação e porta.

Criação da Sessão:

  • A classe Session é usada para criar uma sessão de e-mail.
  • Ela recebe as propriedades configuradas e um objeto Authenticator para autenticação.

Composição do E-mail:

  • Cria-se uma instância de MimeMessage para representar o e-mail.
  • Define-se o remetente, destinatário e assunto do e-mail.

Corpo da Mensagem:

  • Se envioHTML for verdadeiro, o conteúdo do e-mail é definido como HTML usando message.setContent(emailContent, "text/html; charset=utf-8").
  • Caso contrário, o conteúdo é definido como texto simples usando message.setText(emailContent).

Envio do E-mail:

  • O método Transport.send(message) envia o e-mail.

Método de envio de e-mail com anexo

Utiliza praticamente as mesma propriedades do método de envio de e-mail padrão, com exceção do Anexo

Anexo:

  • Usa-se a classe MimeMultipart para agrupar o corpo da mensagem e o anexo.
  • Adiciona-se o anexo à parte da mensagem usando multipart.addBodyPart(attachmentPart).

JFrame 1

No primeiro Jframe será necessário seu e-mail e senha (para usar esse código, você precisa ter uma conta no Gmail e permitir o acesso de aplicativos menos seguros nas configurações da sua conta, gere uma senha de 16 caracteres para ser usada). Clique em "Log In" para o próximo JFrame ou em "Sair" para fechar a aplicação.

JFrame 2

No segundo JFrame você deverá inserir o e-mail do destinatário (se mais de um, separá-los por vírgulas), o remetente, título do e-mail e o corpo da mensagem. Quando marcada, a CheckBox Mensagem Automática irá desativar os campos (Corpo da Mensagem e Anexo), ela irá enviar uma mensagem feita pelo criador do projeto.

Anexo

Quando clicado, o botão de Procurar irá abrir uma tela do JFileChooser, o usuário poderá escolher apenas um arquivo para ser enviado no e-mail. O caminho do arquivo é mostrado na JTextField ao lado de "Anexo:".

Ao checar todos os campos se as informações estão corretas, o usuário deverá clicar em enviar para que o envio do e-mail seja bem sucessido.

Clone this wiki locally