JavaMail API Exemplo

by Paco Pomet / from beautifuldecay.com

JavaMail API é uma biblioteca que permite de forma fácil realizar envios de e-mails. O respositório maven onde se encontra a biblioteca é esse aqui: http://mvnrepository.com/artifact/javax.mail/mail/1.5.0-b01

Passo-a-passo

Dentro dessa API há a classe java.util.Properties onde iremos informar as configurações necessários ao protocolo SMTP como no exemplo abaixo.


Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");

view raw

SendEmail.java

hosted with ❤ by GitHub

Com essas configurações em mãos, podemos criar uma sessão(classe javax.mail.Session) contendo a autenticação (javax.mail.Authenticator e javax.mail.PasswordAuthentication) da conta de email que será usado para disparar os emails.


Session session = Session.getInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("emailrementente@servidor.com", "senha");
}
});

view raw

SendEmail.java

hosted with ❤ by GitHub

Autenticado, utilizaremos essa sessão para criar uma mensagem de email através das classes javax.mail.internet.MimeMessage, javax.mail.internet.InternetAddress, javax.mail.Address e javax.mail.Message como demonstrado abaixo:


MimeMessage message = new MimeMessage (session);
message.setFrom(new InternetAddress("emailrementente@servidor.com"));
Address[] toUser = InternetAddress.parse("emaildestinatario@servidor.com");
message.setRecipients(Message.RecipientType.TO, toUser);
message.setSubject("Assunto");
message.setText("Texto", "utf-8", "html");

view raw

SendEmail.java

hosted with ❤ by GitHub

Feito isso, podemos realizar o envio através da classe javax.mail.Transport:


Transport.send(message);

view raw

SendEmail.java

hosted with ❤ by GitHub

Exemplo completo

SendEmail.java


public class SendEmail {
public static void main(String[] args) {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("emailrementente@servidor.com", "senha");
}
});
MimeMessage message = new MimeMessage (session);
message.setFrom(new InternetAddress("emailrementente@servidor.com"));
Address[] toUser = InternetAddress
.parse("emaildestinatario@servidor.com");
message.setRecipients(Message.RecipientType.TO, toUser);
message.setSubject("Assunto");
message.setText("Texto", "utf-8", "html");
Transport.send(message);
}
}

view raw

SendEmail.java

hosted with ❤ by GitHub

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s