"Sou eu... de novo. E de novo, tenho uma pequena surpresa para você."

"Hoje vou ensinar como enviar e-mail usando Java. "

"Vamos começar com a boa notícia: o Java possui uma biblioteca nativa para trabalhar com e-mail. "

"A má notícia é que esta biblioteca faz parte do Java EE , não do Java SE ."

" Java EE é uma versão estendida do JavaSE , que inclui classes necessárias para aplicativos mais sofisticados. Por exemplo, um aplicativo para trabalhar com e-mail."

"Entendi, então o que pode ser feito então?"

"Bem, sugiro que você baixe esta biblioteca e pronto."

"Use o IntelliJ IDEA com sabedoria."

"Crie uma classe e adicione as bibliotecas javax.mail.* e javax.mail.internet.* à seção de importação.

"Em seguida, pressione Alt + Enter e deixe o IDEA fazer tudo por você:

"Aqui está a oferta para baixar as bibliotecas ausentes:"

Enviar e-mail - 1

"Aqui está a aparência da janela de download:"

Enviar e-mail - 2

"Ou você pode baixá-lo aqui "

"Baixado. Qual é o próximo?"

"Você precisa ir para as configurações do projeto (Open Module Settings) para a seção Bibliotecas e adicionar arquivos JAR do arquivo baixado."

Enviar e-mail - 3

"Feito."

"As linhas a seguir não são mais vermelhas?"

import javax.mail.internet.MimeMessage;
import javax.mail.internet.*;

"Sim."

"Ótimo, vamos continuar então."

"Existem três etapas para enviar um e-mail."

1) Estabeleça uma conexão com o servidor de e-mail que será usado para enviar o e-mail

2) Crie o e-mail e, se necessário, adicione anexos

3) Envie o e-mail.

"Vamos começar do começo."

"Para enviar um e-mail em Java, primeiro você precisa estabelecer uma conexão com o servidor de e-mail."

"É melhor se você já tiver uma conta de e-mail no servidor. Preocupados com spam, os servidores de e-mail modernos não querem enviar mensagens de usuários anônimos. "

"Você pode se conectar ao servidor com uma única chamada para o método javax.mail.Session.getDefaultInstance:"

Crie uma conexão com o servidor de e-mail
Properties props = new Properties();

// Here we need to load data into the props object

Session session = Session.getDefaultInstance(props);

"Mas você precisa passar as configurações do servidor de e-mail para este método."

"Por exemplo, você pode criar um arquivo Mail.properties e preenchê-lo com as configurações desejadas, por exemplo, algo assim:"

Mail.properties
mail.transport.protocol=smtp
mail.host=smtp.gmail.com
mail.smtp.auth=true
mail.user=arnold@gmail.com
mail.password=strong

"O mais importante é especificar o protocolo e o host, mas você pode precisar de configurações adicionais, dependendo de como o servidor de correio funciona."

"Você pode simplesmente adicionar esses dados a um objeto Propriedades diretamente no seu código Java."

"Por exemplo:"

Crie uma conexão com o servidor de e-mail"
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.host", “smtp.gmail.com”);
props.put("mail.smtps.auth", "true");
props.put("mail.smtp.sendpartial", "true");

Session session = Session.getDefaultInstance(props);

"Ótimo, temos uma sessão. Agora vamos criar um e-mail."

"Isso é mais fácil de fazer do que parece à primeira vista. Por exemplo:"

Criar uma mensagem de correio
// Create a message
MimeMessage message = new MimeMessage(session);

// Set the message subject
message.setSubject("Test email!");

// Add the message text
message.setText("Asta la vista, baby!");

// Specify the recipient
message.addRecipient(Message.RecipientType.TO, new InternetAddress("stalone@gmail.com"));

// Specify the delivery date
message.setSentDate(new Date());

"Posso especificar qualquer endereço de e-mail como destinatário?"

"Sim. Além do mais, você também pode especificar qualquer endereço de e-mail como remetente."

"Legal! Vou levar isso em consideração."

"Agora só precisamos enviar esta mensagem."

"Primeiro, entramos no servidor e depois enviamos nossa mensagem. Apenas duas linhas de código:"

Envie uma mensagem
// Username and password for a Gmail account
String userLogin = “arnold@gmail.com”;
String userPassword = “strong”;

// Sign in on the server:
Transport transport = session.getTransport();
transport.connect("smtp.gmail.com", 465, userLogin, userPassword);

// Send a message:
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));

"Que interessante! Vou ter que experimentar."

"Se você está se perguntando como enviar uma mensagem com anexos, pode ler sobre isso aqui ."

"Se você também quiser saber como receber correspondência, por favor veja aqui ."

"Santo Deus. Que links úteis!"

"Sim, vou fazer meu próprio cliente de e-mail agora. Legal!"

"Obrigado, Ellie!"