terça-feira, 15 de setembro de 2009

Enviando e-mail com java

Nesse poste vou mostrar como enviar email a parti de um codigo java.

Inicialmente devemos baixar a API JavaMail disponibilizada pela SUN aqui.

Agora vamos criar um projeto java no Netbeans:

Vá em: Arquivo -> Novo projeto -> java -> aplicativo java
dê um nome ao seu projeto e finalize.

Feito isso devemos agora importa para o projeto as bibliotecas da API Java Mail. Basta selecionar o projeto clicar com o botão direito -> propriedades. Na janela de propriedades selecione bibliotecas, na aba Compilar que aparece ao lado clique em adicionar jar ou se preferir crie uma biblioteca e adicione essa biblioteca, localize os jars da API que fica dentro do diretorio lib, além dos jars desse diretorio é preciso adicionar também o jar mail.jar que fica dentro do diretorio onde esta localizado o diretorio lib. Depois clique em ok. Pronto todos os jars necessário já estão dentro do seu projeto.

A baixo temos a classe responsavel por enviar o email:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package br.com.flavio.mail;

import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



/**
*
* @author Adriano Gurgel
*/
public class EmailSender {

private String HOST = "smtp.gmail.com";

private String from;
private String to;
private String subject;
private String body;

public EmailSender() {
}

public EmailSender( String to, String from, String subject, String body) {
this.from = from;
this.to = to;
this.subject = subject;
this.body = body;
}

public void sendMail(String senha,String to, String from,String subject,String body) throws MessagingException{

Properties props = System.getProperties();

// definindo o protocolo de transporte como smtp
props.put("mail.transport.protocol", "smtp");
// adicionando o host pelo qual vai ser enviado o email
props.put("mail.smtp.host", HOST);//smtp do gmail
// adicionado a porta pela qual vai ser enviado o email no host
props.put("mail.smtp.port", "465"); //porta do smtp do gmail

props.put("mail.smtp.socketFactory.port", "465"); //mesma porta para o socket
// definindo o protocolo para o socket
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.socketFactory.fallback", "false");

// criando a sessão para o host
Session session = Session.getDefaultInstance(props, null);

// criando a menssagen para a sessão criada
Message msg = new MimeMessage(session);
// atribuido os email from e to da menssagen
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));

// adicionando o titulo do email
msg.setSubject(subject);
// adicinando o corpo do email
msg.setText(body);
// definindo a data da menssagen
msg.setSentDate(new Date());

// inciando o processo de envio
Transport tr;
try {
tr = session.getTransport("smtp"); //define smtp para transporte

tr.connect(HOST, from, senha);
msg.saveChanges();
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(">> Erro: Envio Mensagem");
e.printStackTrace();
}
System.out.println("Message enviada OK.");
}
}

Nenhum comentário:

Postar um comentário