JSP (Java Server Page) - Enviar MAIL con JSP desde form HTML

 
Vista:

Enviar MAIL con JSP desde form HTML

Publicado por Iván (1 intervención) el 19/04/2013 10:11:30
Hola,

Estoy empezando a aprender Java, y me he puesto el objetivo de enviar un mail con JSP. Estoy acostumbrado a hacerlo vía PHP, lo cual ya me resulta sencillo, pero a pesar de que JSP también lo es, no logro hacer que funcione.

Pongo a continuación el código JSP a ver si alguien puede ayudarme y decirme qué es lo que falla.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<%@ page import="java.io.*,java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%
 
   // Quién recibe el mail
   String to = "MAIL@gmail.com";
 
   // Quien envía el mail
   String from = "MAIL@HOST.net";
 
   // Propiedades del mail
        properties.setProperty("mail.user", "MAIL@HOST.net");
	properties.setProperty("mail.password", "PASS");
	properties.setProperty("mail.smtp.starttls.enable", "true"); // El mail usa STARTTLS
	properties.setProperty("mail.smtp.port", "25");
	properties.setProperty("mail.smtp.host", "smtp.HOST.com");
	properties.setProperty("mail.smtp.auth", "true");
	properties.setProperty("mail.HOST.net", host);
 
   // Obtener el objeto de propiedades del mail
   Properties properties = System.getProperties();
 
   // Obtener el objeto de propiedades de la sesion
   Session mailSession = Session.getDefaultInstance(properties);
 
   try{
 
	  // Declarando variables
 
	  String host = "mail.HOST.net";
	  String subject;
	  String result;
 
          // Variables que se obtienen via el HTML FORM
	  String name = request.getParameter("name");
	  String surname = request.getParameter("surname");
	  String id = request.getParameter("id");
	  String natnum = request.getParameter("natnum");
	  String altnum = request.getParameter("altnum");
	  String dir = request.getParameter("dir");
	  String dirout = request.getParameter("dir2");
	  String radio = request.getParameter("type");
	  String comment = request.getParameter("comment");
	  String email = request.getParameter("email");
	  String box = 	request.getParameter("box");
 
	  // Condición para definir el subject
 
	  if (radio.equals("otros")) {
		String subject = "Tipo de objeto: request.getParameter('box');";
	  }
	  else {
		String subject = "Tipo de objeto: request.getParameter('radio');";
	  }
 
         // MIME
      MimeMessage message = new MimeMessage(mailSession);
 
         // Declarando el FROM
      message.setFrom(new InternetAddress("MAIL@HOST.net"));
 
         // Declarando el recipiente
      message.addRecipient(Message.RecipientType.TO,new InternetAddress("MAIL@GMAIL.com"));
 
         // Declarando el asunto
      message.setSubject("Objeto extraviado: request.getParameter('Subject');");
 
         // Contenido del mensaje HTML
      message.setContent("
<br><p><strong><font color='red'>
 - Datos del remitente - 
</font></strong></p>
<strong><br>
Nombre:
 </strong>
request.getParameter('name');
<br><strong>
Apellidos:
 </strong>
request.getParameter('surname');
<br><p><strong>
Documento de identidad: 
</strong></p>
request.getParameter('id');
<br><p><strong>Tel&eacutefono nacional: 
</strong>request.getParameter('natnum');
<br>";,
      "text/html" );
 
         // Mandar mensaje
      Transport.send(message);
      result = "Mensaje enviado !!";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Algo ha salido mal";
   }
 
%>


Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Enviar MAIL con JSP desde form HTML

Publicado por Fernando (4 intervenciones) el 08/01/2014 19:33:25
Hola,

Yo he utilizado el JavaMail en un proyecto y funciona pero que lo haces diferente a como yo lo hago. Yo sigo los siguientes pasos:


1º - Preparo las propiedades de la conexión , creo que eso si lo has hecho aunque no veo que instancies ningún objeto Properties.

2º - Preparo la sesión, con el objeto que he creado antes, vamos que se lo paso; eso también te falta.

3º- Construyes el mensaje, aquí si que has instanciado el objeto MimeMessage, esta parte si que me parece la tienes completa.

4º- Lo enviamos y cerramos que esta parte la tengo parecida, pero creo una instancia del objeto Transport.

Creo que debes de mirarte el libro del JavaMail que es gratuito y te pone ejemplos completos, yo lo he hecho así.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar