sexta-feira, 23 de março de 2007

E - mail em Java

Não seria esse o objetivo desse blog, mas, como os atuais acontecimentos mudaram minha perspectiva sobre diversos assuntos, decidi contribuir repassando minhas dificuldades e soluções encontradas, para que se alguém porventura compartilhe das mesmas, consiga melhores respostas.

Essa é uma classe para enviar email, bem simples, porem pode ser útil.




import java.util.Properties;

import javax.faces.application.FacesMessage;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
* @author Mauricio Couto Pelissari
*/
public class EmailSender {
/**
* Envia email atraves do servidor definido
*/
public EmailSender () {
}

// ~--- methods ----------------------

/**
* @param emailDest -
* Email para onde sera enviado (obrigatorio)
* @param emailCopia -
* Email para enviar uma copia da msg
* @param emailCopiaOculta -
* Email para enviar copia oculta
* @param emailEnv -
* Email de onde foi enviado (obrigatorio)
* @param titulo -
* Titulo do email
* @param mensagem -
* Mensagem do email
*/
public void send(String servidor, String emailDest,
String emailCopia, String emailCopiaOculta,
String emailEnv, String titulo,
String mensagem) {
Properties p = new Properties();
if (servidor == null) {
servidor = "Servidor de email padrao";
}

p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host",servidor);
p.put("mail.smtp.port", "25");
// p.put("mail.smtp.user", usuario);
// p.put("mail.password", "xxx");
// p.put("mail.smtp.startssl.enable","true");
// p.put("mail.smtp.starttls.enable","true");
// p.put("mail.smtp.auth", "true");
p.put("mail.smtp.debug", "true");
p.put("mail.smtp.socketFactory.port", "25");
// p.put("mail.smtp.socketFactory.class",
// "javax.net.ssl.SSLSocketFactory");
p.put("mail.smtp.socketFactory.fallback", "false");

Session session = Session.getInstance(p, null);

session.setDebug(true);

MimeMessage msg = new MimeMessage(session);

try {

// "de" e "para"!!
msg.setFrom(new InternetAddress(emailEnv.toLowerCase()));
msg.setRecipient(Message.RecipientType.TO,
new InternetAddress(emailDest.toLowerCase()));
if (emailCopia != null) {
msg.setRecipient(Message.RecipientType.CC,
new InternetAddress(emailCopia.toLowerCase()));
}
if (emailCopiaOculta != null) {
msg.setRecipient(Message.RecipientType.BCC,
new InternetAddress(emailCopiaOculta.toLowerCase()));
}

// assunto da mensagem
if (titulo.length() > 0) {
msg.setSubject(titulo);
} else {
titulo = "Sem Titulo!";
}


// corpo da msg
if (mensagem.length() > 0) {
msg.setText(mensagem);
} else {
mensagem = "Sem mensagem!";
}

// Enviando mensagem (tentando)
Transport.send(msg);
} catch (AddressException e) {
e.printStackTrace();
//Tratamento do erro
} catch (MessagingException e) {
e.printStackTrace();
//Tratamento do erro
}
}
}




Nenhum comentário: