Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JavaMail es una API que se puede descargar libremente del sitio de la Sun
http://java.sun.com/products/javamail/.
Esta muy bien documentada y provee todas las clases necesarias para gestionar servicios de
corre electrónico.
En este caso haremos una clase simple para el envió de mensajes. Luego veremos la
implementación dentro de una pagina jsp.
Comenzamos entonces por escribir el código de la clase, para luego explicarla en detalle:
package notas;
import java.util.Properties;
import java.util.Date;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.InternetAddress;
/**
* <p>Title: MailSender</p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author Fernando Arturi
* @version 1.0
*/
// BODY
MimeBodyPart mbp = new MimeBodyPart();
if(isHTMLFormat){
mbp.setContent(body.toString(), "text/html");
}
else{
mbp.setText(body.toString());
}
multipart.addBodyPart(mbp);
msg.setContent(multipart);
Transport.send(msg);
}
catch (Exception mex){
System.out.println(">> MailSender.send() error = "+mex );
return false;
}
return true;
}
1) Comenzamos por definir un package, es decir un grupo de clases, aunque en este caso
será solamente una. Después importamos todas las clases que nos sirven, es importante
agregar las librerias JavaMail ya sea al entorno de desarrollo como a nuestro sitio jsp
(carpeta \WEB-INF\lib).
package notas;
import java.util.Properties;
import java.util.Date;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.InternetAddress;
public MailSender() {
}
3) Definimos la función estática send que, a través de los parámetros recibidos, permite de
enviar el mensaje. Dichos parámetros son:
hostSmtp : Servidor de correo en salida (smtp).
senderAddress: la dirección de correo de la persona que envía el mensaje.
toAddress : la dirección de correo de la persona que recibirá el mensaje.
ccAddress : la dirección de correo de la persona que recibirá el mensaje en copia.
bccAddress: la dirección de correo de la persona que recibirá el mensaje en copia oculta.
subject : Titulo del mensaje.
isHTMLFormat : variable booleana que indica si el mensaje es con formato HTML o texto
simple.
body = cuerpo del mensaje.
debug = variable booleana que indica a la API si debe hacer el "debugging", es decir, una
serie de mensajes detallando cada paso que se ejecuta. Esta variable seguramente será igual
a true durante los primeros usos de la clase, luego no tiene mucho sentido dejarla activa.
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(senderAddress));
msg.setRecipients(Message.RecipientType.TO, toAddress);
msg.setRecipients(Message.RecipientType.CC, ccAddress);
msg.setRecipients(Message.RecipientType.BCC, bccAddress);
msg.setSubject(subject);
msg.setSentDate(new Date());
// BODY
MimeBodyPart mbp = new MimeBodyPart();
if(isHTMLFormat){
mbp.setContent(body.toString(), "text/html");
}
else{
mbp.setText(body.toString());
}
multipart.addBodyPart(mbp);
msg.setContent(multipart);
Transport.send(msg);
return true;