Tomado de:
http://www.chuidiang.com/java/herram...r-javamail.php http://www.javacommerce.com/displayp...l.sql&id=18274
Yo use esto:
// Para email
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
/**
* @version 1.0
* ===============================================
* @author Juan Arturo Gomez Perez
[email protected]
* programa: ContactoServlet.java
* funcion: Reciba datos de formulario y envia un email al administrador del sitio
* Fecha: Octubre 2008
* ===============================================
*/
public class ContactoServlet extends HttpServlet implements Servlet {
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
performTask(req, resp);
}
/**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
performTask(req, resp);
}
public void performTask(HttpServletRequest req, HttpServletResponse resp){
System.out.println("------------------");
System.out.println("ContactoServlet.java");
System.out.println("------------------");
String SMTP_HOST_NAME ="";
int SMTP_PORT =0; //;587;// "25
String SMTP_AUTH_USER = "";
String SMTP_AUTH_PWD = "";
String MAIL_CONTACTO= "";
boolean error = false;
String errorMessage = "";
try{
// Recuperamos datos de mailserver
//--------------
// A) Seccion de apertura de base de datos MySql (unico registro)
//--------------
Database database= new Database();
Connection con = DriverManager.getConnection(database.getUrl(),data base.getUsuario(), database.getPassword());
Statement stmt = con.createStatement();
String strSql = "SELECT * FROM administracion ";
System.out.println(strSql);
//stmt.executeUpdate(strSql);
ResultSet rs = stmt.executeQuery(strSql);
if (rs.next() ) {
SMTP_HOST_NAME = rs.getString("SMTP_HOST_NAME").trim();
SMTP_PORT = Integer.parseInt(rs.getString("SMTP_PORT").trim()) ;
SMTP_AUTH_USER = rs.getString("SMTP_AUTH_USER").trim();
SMTP_AUTH_PWD = rs.getString("SMTP_AUTH_PWD").trim();
MAIL_CONTACTO = rs.getString("MAIL_CONTACTO").trim();
}
}catch(Exception e){
System.out.println("Error al recuperar datos de mailserver "+e.getMessage());
error = true;
errorMessage = "Error al recuperar datos de mailserver "+e.getMessage();
}
if (!error){
//--------------------
// Valida la sesion
//--------------------
//Si el usuario no se ha logeado apropiadamente, se redirige a login
javax.servlet.http.HttpSession session = req.getSession(true);
SessionBean sessionBean = (SessionBean) session.getAttribute("sessionBean");
if (sessionBean == null) {
// El bean ya no existe.. por ello podemos redireccionar directo
//req.sendRedirect("Login.jsp");
try{
resp.sendRedirect(getInitParameter("nosession_page ")+"?errorMessage=Sesion ha caducado");
} catch (IOException ex) {
System.out.println("Error en Redirect");
ex.printStackTrace();
}
}else{
String empleado= sessionBean.getEmpleado();
String nombre = req.getParameter("nombre");
String emailFrom = req.getParameter("email");
String comentarios = req.getParameter("comentarios");
System.out.println("nombre="+nombre);
System.out.println("email="+emailFrom);
System.out.println("mensaje="+comentarios);
String emailTo = MAIL_CONTACTO;
String mailSubject = "Solicitud de contacto desde Consulta de Ahorros y Prestamos";
String mailBody = "<table>";
mailBody = mailBody + "<tr>";
mailBody = mailBody + "<td colspan=2>Se recibió una solicitud de contacto desde la Consulta de Ahorros y Prestamos:</td>";
mailBody = mailBody + "</tr>";
mailBody = mailBody + "<tr>";
mailBody = mailBody + "<td>Nombre:</td><td><b>" + nombre + "</b></td>";
mailBody = mailBody + "</tr>";
mailBody = mailBody + "<tr>";
mailBody = mailBody + "<td>Email:</td><td><b>" + emailFrom + "</b></td>";
mailBody = mailBody + "</tr>";
mailBody = mailBody + "<tr>";
mailBody = mailBody + "<td>Duda o comentarios:</td><td>" + comentarios + "</td>";
mailBody = mailBody + "</tr>";
mailBody = mailBody + "</table>";
String respuesta = "";
boolean debug = false;
try{
Properties props = new Properties();
//Nombre del host de correo, es smtp.gmail.com
props.put("mail.smtp.host", SMTP_HOST_NAME);
//TLS si está disponible
props.setProperty("mail.smtp.starttls.enable", "true");
//Puerto de gmail para envio de correos
//props.setProperty("mail.smtp.port","587");
props.setProperty("mail.smtp.socketFactory.port", "587");
//Nombre del usuario
props.setProperty("mail.smtp.user", SMTP_AUTH_USER);
//Si requiere o no usuario y password para conectarse.
props.setProperty("mail.smtp.auth", "true");
Session sessionX = Session.getDefaultInstance(props, null);
//---------------------
// Poner en falso para NO imprimir el DEBUG del objeto MAIL
//---------------------
sessionX.setDebug(true);
MimeMessage message = new MimeMessage(sessionX);
//Quien envia el correo
message.setFrom(new InternetAddress(emailFrom));
//A quien va dirigido
message.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));
message.setSubject(mailSubject);
message.setContent(mailBody, "text/html");
Transport t = sessionX.getTransport("smtp");
//t.connect();
//transport.connect( sendHost, sendPort, sendLoginID, sendPassword );
t.connect( SMTP_HOST_NAME,SMTP_PORT,SMTP_AUTH_USER,SMTP_AUTH_ PWD);
t.sendMessage(message,message.getAllRecipients());
t.close();
}catch(Exception e){
System.out.println("error al enviar el email="+e.getMessage());
respuesta = "Ocurrio un error al enviar el correo.. intente mas tarde.";
errorMessage = e.getMessage();
}
//http://www.chuidiang.com/java/herramientas/javamail/empezar-javamail.php
//http://www.javacommerce.com/displaypage.jsp?name=javamail.sql&id=18274
try {
//------------------
// Se preparan variables de aviso y confirmacion a JSP
//------------------
if (respuesta.equals("")){
respuesta="Su email ha sido enviado al administrador... gracias por contactarnos. En caso necesario un operador se pondrá en contacto con usted.";
}
req.setAttribute("respuesta", respuesta);
System.out.println("redirect hacia Contacto.jsp");
//------------------
// Se remite respuesta al navegador
//------------------
req.getRequestDispatcher("/Contacto.jsp?errorMessage="+errorMessage).forward( req, resp);
} catch(Exception ioe) {
System.out.println("Error: " + ioe);
errorMessage = "Error: "+ioe.getMessage();
}
}// de sesion nula
}// de error = false
//System.out.println("SI!!");
try{
req.getRequestDispatcher("/Login.jsp?errorMessage="+errorMessage).forward(req , resp);
}catch(Exception e){
}
}
}