Pages

Sunday, November 25, 2007

Trabajando con JavaMail

Después de darle la vuelta al internet encontré como utilizar el famoso JavaMail para enviar correos desde una JSP, el ejemplo que se muestra está en una JSP, pero se lo uede sacar a una clase que puede ser un managed bean para JSF o un JavaBean para tags JSP.

El codigo es el siguiente:

<%@page contentType="text/html">
<%@page pageEncoding="UTF-8"%>

<%@page import="java.util.*"%>
<%@page import="javax.mail.*"%>
<%@page import="javax.mail.internet.*"%>
<%@page import="javax.activation.*"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
// SUBSTITUTE YOUR EMAIL ADDRESSES HERE!!!
String to = "nombre@dominio.com";
String from = "aqui va un correo propio del servidor donde lo subes";
// SUBSTITUTE YOUR ISP'S MAIL SERVER HERE!!!
String host = "el smtp server que tu proveedor de hosting te brinda";
//String host = "pop.gmail.com"; aqui se usa google, no se funcione

// Create properties, get Session
Properties props = new Properties();


// If using static Transport.send(),
// need to specify which host to send it to
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.auth", "true");



// To see what is going on behind the scene
//props.put("mail.debug", "true");
Session ses = Session.getDefaultInstance(props);
ses.setDebug(true);

try {
// Instantiatee a message
MimeMessage msg = new MimeMessage(ses);

//Set message attributes
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, to);
msg.setSubject("SALUDOS DESDE JAVA MAIL");
msg.setSentDate(new Date());

// Set message content
msg.setText("AQUI VA EL MENSAJE DESDE JAVA MAIL");

//Send the message
Transport t = ses.getTransport("smtp");
t.connect("el smtp server que tu proveedor de hosting te brinda", -1, "el mail que enviara el correo", "el password del mail que enviara el correo");
t.sendMessage(msg, msg.getAllRecipients());
t.close();
}
catch (MessagingException mex) {
// Prints all nested (chained) exceptions as well
out.println(mex.toString());
}
catch (Exception e){
out.println(e.toString());
}


%>


</body>
</html>


A mi me funcionó perfecto, espero sirva a alguien más.´

Algunos recursos:

El mejor: http://www.chuidiang.com/java/herramientas/javamail/enviar-correo-javamail.php

http://www.chuidiang.com/chuwiki/index.php?title=Enviar_correos_con_JavaMail_y_Java

http://java.sun.com/products/javamail/javadocs/javax/mail/Service.html#connect()

http://www.programacion.com/java/tutorial/javamail/4/

http://lineadecodigo.com/2006/12/12/enviar-correo-en-copia-oculta-con-javamail/



Saludos

2 comments:

M. S. C. Edgar Darío Ramírez de León said...

"pero he cambiado los "<" ">" que son lo que abren y cierran los tags html por "*" para que se pueda publicar"

Comentario: porqué no usar las secuencias de escape: &lt; para "<" y &gt; para ">".

: ) Buen blog!

Unknown said...

Gracias Edgar. No habia notado que se podia utilizar las secuencias de escape. Excelente sugerencia

Saludos