|
Se faz quack então é pato!!!
|
|
Amigos , Mais uma vez enfrentando os desafios do dia-a-dia me deparei com um problema teoricamente simples o envio de mensagens via e-mail , desta vez de forma autenticada ou seja informando usuário senha e conta para identificação do destinatário. Criei a seguinte classe SendMail.java que faz este processo e segue abaixo o código :
//Class SendMail.java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
public class SendMail {
private static final String SMTP_HOST_NAME = "smtp.dominio";
private static final String SMTP_AUTH_USER = "conta@dominio";
private static final String SMTP_AUTH_PWD = "senha";
private static final String emailMsgTxt = "Teste de Envio com autenticacao em JAVA.";
private static final String emailSubjectTxt = "Mensagem de Teste ";
private static final String emailFromAddress = "conta@dominio";
// Inserir aqui os enderecos onde a mensagem sera entregue
private static final String[] emailList = {"primeiro@dominio", "segundo@dominio", "terceiro@dominio"};
public static void main(String args[]) throws Exception {
SendMail smtpMailSender = new SendMail();
smtpMailSender.postMail(emailList, emailSubjectTxt, emailMsgTxt, emailFromAddress);
System.out.println("Email Enviado para primeiro@dominio e segundo@dominio e terceiro@dominio");
}
public void postMail(String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = false;
//Setando o host
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(debug);
// Criando a mensagem
Message msg = new MimeMessage(session);
// Setando o endereco
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
//Conteudo
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
private class SMTPAuthenticator extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username = SMTP_AUTH_USER;
String password = SMTP_AUTH_PWD;
return new PasswordAuthentication(username, password);
}
}
}
Para funcionamento desta exemplo é necessário que utilize as jar standard.jar e mail.jar padrões do javamail. Até Mais. |