[Java] – Enviando e-mail autenticado

datePosted on 15:06, maio 6th, 2010 by Carlos Eugênio

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.

categoryPosted in Java | printPrint
Related Posts:

Leave a Reply

Name: (required)
Email: (required) (will not be published)
Website:
Comment:

Twitter Users
Enter your personal information in the form or sign in with your Twitter account by clicking the button below.

Spam Protection by WP-SpamFree