Hola.
Estoy realizando mi proyecto fin de carrera y me gustaria saber de la dificultad de mandar un mail desde Java y como podría hacerlo. Estoy realizando el proyecto bajo la plataforma JEE.
Muchas gracias a todos
| |||
Mandar mail desde Java Hola. Estoy realizando mi proyecto fin de carrera y me gustaria saber de la dificultad de mandar un mail desde Java y como podría hacerlo. Estoy realizando el proyecto bajo la plataforma JEE. Muchas gracias a todos |
| |||
Respuesta: Mandar mail desde Java 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){ } } } |