Nesse post vou mostrar como enviar e-mail utilizando a biblioteca JavaMail através de uma conta externa (nesse caso utilizei o gmail).
Segue o código:
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class EnviarEMail {
public static void main(String[] args) {
Properties p = new Properties();
p.put("mail.host", "smtp.gmail.com"); //CONFIGURAÇÃO DO GMAIL
p.put("mail.smtp.starttls.enable","true");
p.put("mail.smtp.port", "587");
p.put("mail.smtp.auth", "true");
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("meu_email@gmail.com", "minha_senha");
}};
try{
Session session = Session.getInstance(p, auth);
MimeMessage msg = new MimeMessage(session);
//DEFINE O ENDEREÇO DO REMETENTE
InternetAddress[] de = {new InternetAddress("remetente@mail.com")};
msg.setFrom(de[0]);
msg.setReplyTo(de); //INFORMA O ENDEREÇO DE RESPOSTA
msg.setRecipient(Message.RecipientType.TO, new InternetAddress("destinatario_1@mail.com"));
//DEFINE A DATA DO ENVIO
msg.setSentDate(new Date());
msg.setSubject("Assunto da mensagem");
String mensagem = "Aqui vem o conteúdo do e-mail";
msg.setText(mensagem);
//DEFINE A CODIFICAÇÃO DO TEXTO DA MENSAGEM. NESSE CASO HTML.
msg.setContent(mensagem, "text/html");
Transport.send(msg);
System.out.println("Mensagem enviada com sucesso!");
}catch (Exception e) {
e.printStackTrace();
}
}
}
Para enviar o e-mail para mais de uma pessoa, basta adicionar um destinatário conforme segue:
//ENVIA COMO UMA CÓPIA
msg.addRecipient(Message.RecipientType.CC, new InternetAddress("destinatario_2@mail.com"));
//ENVIA COMO UMA CÓPIA OCULTA
msg.addRecipient(Message.RecipientType.BCC, new InternetAddress("destinatario_3@mail.com"));
Também é possível enviar um e-mail para várias pessoas de uma só vez:
msg.setRecipients(Message.RecipientType.BCC, new InternetAddress[]{new InternetAddress("destinatario_1@mail.com"),
new InternetAddress("destinatario_2@mail.com"), new InternetAddress("destinatario_3@mail.com")});
Isso fará com que os destinatários 1, 2 e 3 recebam o mesmo e-mail.
Notem que o RecipientType está definido como BCC (Cópia oculta). Isso significa que nenhum destinatário poderá visualizar a lista de destinatário.
Essa dica me ajudou muito. Espero que ajude mais pessoas.
Abraços!!!
Nenhum comentário:
Postar um comentário