JSP and mail.jar

h
03 de Octubre del 2003
como puedo hace para que el siguiente scrip de JSP lea los parameters de mi forma y los envie. Se que para leer los parametros tengo que usar el methodo get.Parameter() pero no se como.. no encuentro documentacion... ayuda.
Aqui script:
<%
Properties props = new Properties();
props.put("mail.smtp.host", "mi email server aqui");
Session s = Session.getInstance(props,null);

MimeMessage message = new MimeMessage(s);

InternetAddress from = new InternetAddress("[email protected]");
message.setFrom(from);

InternetAddress to = new InternetAddress("[email protected]");
message.addRecipient(Message.RecipientType.TO, to);

message.setSubject("tema del correo");
message.setText("algun mensage aqui");

Transport.send(message);
%>

Al insertar este script en mi archivo JSP envia un correo simplemente al invocar el JSP, pero necesito ayuda para hacerlo trabajar de otra manera... yo quiero que me lea los valores de una forma de correo, y cuando apriete "enviar" envie el correo usando los valores de la forma... alguna idea?

Ken
03 de Octubre del 2003
Bueno... a ver:

Para pasar parámetros de un form en una página a otra, el la página del "action" del form (puede ser la misma, de hecho) recoges los parámetros mediante request.getParameter() de la siguiente manera:

Supongamos la página del form que se llama "rellenadatos.jsp" y envía los datos a otra que se llama "enviamail.jsp", que es la que efectivamente envía el correo con los datos de la anterior.

El formulario de la página "rellenadatos.jsp" tiene que tener action='enviamail.jsp' en la etiqueta de FORM, y los campos que son relevantes han de tener un nombre. Metemos campos tipo text con nombre para el remitente, el destino, el asunto y el cuerpo del mensaje,

<input type="text" name="from">
<input type="text" name="to">
etc..

(no te olvides de cerrar la etiqueta de FORM al final!)

Ahora, cuando se pulse el botón de SUBMIT (sí, tienes que añadir un <input type="submit">) le pasará los parámetros a "enviamail.jsp". Vemos cómo los recogemos:

En enviamail.jsp, recogeremos los parámetros por su nombre (por eso necesitábamos que los campos de texto del formulario anterior tuvieran el atributo de nombre).

<%
String remite=request.getParameter("from");
String destino=request.getParameter("to");
String asutno=request.getParameter("asunto");
etc..
%>

Como ves, al método getParameter del objeto request se le pasa como cadena el nombre del input que queremos recuperar, y devuelve el valor que se introdujo en el formulario.

Ahora, ya tenemos las variables remite, destino, asunto... etc, que son cadenas, para meterlas en el script que ponías, sustituyendo las cadenas de muestra que hay por las variables que acabamos de recuperar.

Un dato más, recuerda que lo que has hecho es copiar/pegar código sin entenderlo. Esto en general no es bueno, porque no funcionará a la primera y no sabrás por qué.

Ya me contarás qué tal... salu2

Ken