Mostrando entradas con la etiqueta correo. Mostrar todas las entradas
Mostrando entradas con la etiqueta correo. Mostrar todas las entradas

miércoles, diciembre 29, 2010

Java Mail Basico

Para abrir este blog empesare haciendo un pequeño codigo para poder enviar correos con la liberia java mail.

1.- crear un proyecto java o un proyecto web

2.- las librerias: para poder utilizar mail con java necesitamos contas con algunas librerias como: javamail (contiene dns, imap, mailapi, pop3, smtp) y una libreria que pocos mencionan, que es activation.jar

3.- si has creado un proyecto java normal, al mismo nivel que la carpeta src (si es Eclipce, My Eclipce) o source (si es NetBeans) crea una carpeta, por convencion puedes llamarla "lib" y dentro pon las librerias. ahora agrega al proyecto las librerias por medio de java build path (eclipce) o libreries (NetBeans)

si has creado un proywcto web, busca la carpeta WEB-INF, dentro hay una carpeta lib, pega las liberias

4.- crea un paquete y una clase que en mi caso llamare mail

el codigo es el siguiente:

public class Mail {

private String remitente;
private String pass;
private String cabecera;
private String mensaje;
private String puerto;

private String host;
private String auth;
private String debug;
private String starttlsEnable;
private String destinatario;

private ArrayList destinatarios;

/**
* creas sus metodos get y set
*/

public Mail(){
destinatarios= new ArrayList();
}

public void enviarMail(){
try{
Properties props = new Properties();
props.put("mail.smtp.user", getRemitente());
props.put("mail.smtp.host", getHost());
props.put("mail.smtp.auth", getAuth());
props.put("mail.debug", getDebug());
props.put("mail.smtp.starttls.enable", getStarttlsEnable());
props.put("mail.smtp.port", getPuerto());

Authenticator auth = new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(getRemitente(), getPass());
}
};
Session conexionCorreo = Session.getInstance(props, auth);
Message mensaje = new MimeMessage(conexionCorreo);
Address desde = new InternetAddress(getRemitente());
mensaje.setContent(getMensaje(),"text/plain");
mensaje.setFrom(desde);
mensaje.setSubject(getCabecera());

Address []destinos = new Address[getDestinatarios().size()];
for(int x=0;x destinos[x]=new InternetAddress(getDestinatarios().get(x));
}
mensaje.setRecipients(Message.RecipientType.TO, destinos);
Transport.send(mensaje);
mensaje=null;
conexionCorreo=null;
System.out.println("Mensaje enviado...");
}catch (Exception ex) {
ex.printStackTrace();
System.out.print("Error mensaje 1: "+ex.getMessage());
}
}
}

5.1.- si creaste un proyecto java normal, crearemos la clase main

public class EnvioMail{
public static void main(String [] args){
Mail email = new Mail();

//le damos datos a la clase mail para que esta pueda funcionar
email.setRemitente("el correo emisor");
email.setPass("el password del correo emisor");
email.setCabecera("el texto que va en asunto");
email.setMensaje("el mensaje del correo");
email.setPuerto("el puerto que ocupa el servidor de correo");
email.setHost("la direccion de correo electronico");
email.setAuth("true");//si necesita autenticacion de correo
email.setDebug("false");//si al ejecutar la clase, ara un debug al mismo tiempo
email.setStarttlsEnable("true");//habilitara el tls
email.getDestinatarios().add("correo destino 1");
email.getDestinatarios().add("correo destino 2");
// puedes poner n destinos
}
}

5.2.- si hiciste un proyecto web, entonces este codigo debera ir en un servlet por ejemplo

bueno terminare esto en un ratito por que ando en el trabajo :)