Enviar un email desde una pagina jsp

Quisiera saber como enviar un email desde jsp, usando por ejemplo mi cuenta de gmail a otros email. Lo unico que tengo por el momento es esto pero no se como porner mi correo de gmail como el mandatario, aca te dejo mi codigo haber si me puedes ayudar gracias.
package com.proyecto.servlet;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class for Servlet: EnviarCorreoServlet
*
*/
public class EnviarCorreoServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public EnviarCorreoServlet() {
super();
}
/* (non-Java-doc)
* @see javax. Servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.processRequest(request, response);
}
/* (non-Java-doc)
* @see javax. Servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.processRequest(request, response);
}
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
// Configuración de parámetros
Properties propiedades = new Properties();
propiedades.put("mail.transport.protocol", "smtp");
propiedades.put("mail.smtp.host", "192.168.16.244");
propiedades.put("mail.smtp.port", "25");
propiedades.put("mail.smtp.auth", "true");
// Autentificación y crea un mensaje nuevo
Authenticator auth = new MiAuthenticator();
Session mailSession = Session.getInstance(propiedades,auth);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("[email protected]"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
msg.setSentDate(new Date());
msg.setSubject("Correo del JSP de comentarios - Beker");
// El contenido del correo
String nombre = request.getParameter("nombre");
String comentarios = request.getParameter("comentarios");
msg.setText("Ha escrito el Sr./Sra. " + nombre + ", y dice lo siguiente: " + comentarios );
// La Clase Transport envía el correo
Transport.send(msg);
RequestDispatcher rd = request.getRequestDispatcher("mail_enviado.jsp");
rd.forward(request, response);
} catch(Exception e) {
System.err.println(e);
RequestDispatcher rd = request.getRequestDispatcher("mail_error.jsp");
rd.forward(request, response);
}
}
//clase inner o clase interna
public class MiAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("beker","tecsup");
}
}
//si viene de dominio si acepta el correo
//pero si es con ip no acepta el correo
// Mantener los métodos doGet y doPost.
}
1

1 Respuesta

62.050 pts. Ingeniero en Informática
Fíjate en este código que he encontrado aquí:
http://www.velocityreviews.com/forums/t141237-send-smtp-mail-using-javamail-with-gmail-account.html
Dicen que funciona y es muy parecido al tuyo. Compáralos y mira las diferencias. Creo que donde haces esto, es donde puedes poner tu direccion [email protected]
Msg. SetFrom(new InternetAddress("[email protected]"));
Te pongo en negrita donde se indica el mandatario en el código:
import java.security.Security;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class GoogleTest {
private static final String SMTP_HOST_NAME = "smtp.gmail.com";
private static final String SMTP_PORT = "465";
private static final String emailMsgTxt = "Test Message Contents";
private static final String emailSubjectTxt = "A test from gmail";
private static final String emailFromAddress = "";
private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
private static final String[] sendTo = { ""};
public static void main(String args[]) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
new GoogleTest().sendSSLMessage(sendTo, emailSubjectTxt,
emailMsgTxt, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}
public void sendSSLMessage(String recipients[], String subject,
String message, String from) throws MessagingException {
boolean debug = true;
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.port", SMTP_PORT);
props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxxx", "xxxxxx");
}
});
session.setDebug(debug);
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo = new InternetAddress(recipients);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
}
Otro código que parece más fácil de leer aquí:
http://www.rgagnon.com/javadetails/java-0570.html
muchas gracias por todo, hoy lo voy a probar y se aun tengo alguna duda te lo consulto.
Realmente muchas gracias.
No hay de qué. Si todo va bien recuerda cerrar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas