Foros del Web » Programación para mayores de 30 ;) » Java »

Correos en JSP

Estas en el tema de Correos en JSP en el foro de Java en Foros del Web. Necesito recomendaciones para realizar correos en JSP. Según leo por Internet debo hacerlo por Javamails, cosa que no conozco, y también me han comentado de ...
  #1 (permalink)  
Antiguo 06/05/2009, 03:04
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Correos en JSP

Necesito recomendaciones para realizar correos en JSP.

Según leo por Internet debo hacerlo por Javamails, cosa que no conozco, y también me han comentado de usar MAPI, que se adapta a todo.

Yo lo que estaba acostumbrado era en ASP con el Outlook Express, pero necesito hacerlo en JSP, vamos cosa nueva para mi.

Si podeis decirme vuestra mejor opcion a la hora de enviar correos yo seguiré mirando.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 06/05/2009, 03:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Yo estoy trabajando con la API JavaMail y la verdad que da bastantes facilidades a la hora de trabajar con correos. No se cual es el objetivo pero miraría esta API a ver si te interesa.
  #3 (permalink)  
Antiguo 06/05/2009, 03:28
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

La página es muy simple, lo que importa es que relleno un "Textarea" y ese es el cuerpo del mensaje. Luego hay un boton que enviaría el correo.

Me descargué "JavaMail API 1.4.2" pero ni idea de lo que tengo que seguir haciendo porque las explicaciones que encontré son para "JavaMail 1.1.3" y "JavaMail 1.2".
  #4 (permalink)  
Antiguo 06/05/2009, 04:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Resumiendo sería algo así el envio simple de un texto simple sin adjunto ni html ni nada. Es el primer ejemplo que hize para enviar.

Cita:
public class EnvioSimpleJM
{
public static void main(String[] args)throws IOException, EmailException
{

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try {


Properties props = new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", 465);
props.put("mail.smtp.socketFactory.port",465);
props.put("mail.smtp.socketFactory.class","javax.n et.ssl.SSLSocketFactory");
props.put("mail.smtp.auth","true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.socketFactory.fallback","fals e");

Session session = Session.getDefaultInstance(props,new DefaultAuthenticator("[email protected]","tupassw ord"));

MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]","tunombre"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]","nombre receptor"));


message.setSubject("Subject");
message.setText("Mensaje");

Transport t = session.getTransport("smtp");
System.out.println("Conectando");
t.connect();
System.out.println("Enviando");
t.send(message);
System.out.println("Correo Enviado exitosamente!");

t.close();

} catch (Exception e) {
System.out.println("Ops!... " + e.getMessage());
}
}
}
Te iba a poder enlaces de webs pero no puedo porque soy nuevo en el foro.

El libro Javamail a tope te ayudará mucho, esta por internet en formato pdf.

En internet hay varias classes ya hechas, si esto no te vale busca y encontrarás facilmente.



Para cogerlo en el textarea y demás no te puedo explicar pero bueno eso lo sabrás.

Un saludo
  #5 (permalink)  
Antiguo 06/05/2009, 04:49
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Bueno, mi problema es que todavía no se donde tengo que meter la carpeta del javamail, porque me dice que en la carpeta "C:\j2sdk1.4.2_09" y no tengo ninguna carpeta que se llame así, ni parecido por todo mi pc.

Por lo tanto, meter lineas de código que tienen que ver con JavaMail como son "Properties" ya me dan error.

Si me podeis decir en que carpeta tengo que meterlo, o como se instala, el código ya me puedo pelear yo si eso, aún asñi gracias por ponerme un ejemplo.
  #6 (permalink)  
Antiguo 06/05/2009, 05:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Yo por ahora estoy trabajando en eclipse y lo que hay que hacer es extraer el jar en alguna carpeta y luego en el properties del projecto añadir las librerias que se necesitan, pero en tema servers y demás no se donde tienes quemeterlo.

Creo que no te puedo ayudar más en esos temas. Que tengas suerte!
  #7 (permalink)  
Antiguo 06/05/2009, 05:34
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Si, yo estoy con Eclipse Ganymede, voy a meter el jar en "lib" a ver que pasa, pase lo que pase edito el mensaje.

Editado: No funciona como yo pensé. Tu que haces "Build Path -> Configure Build Path" y en libraries adjuntas el ".jar"?¿?

Última edición por SileBird; 06/05/2009 a las 05:40
  #8 (permalink)  
Antiguo 06/05/2009, 10:02
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Yo hago:

Boton derecho en el projecto -> Properties -> Java Build Path -> Add Librari-> userLibrary(esto es porque creo una libreria para que sea más fácil meterla en los diferentes projectos) -> New -> Seleccionar lo creado -> AddJArs -> Añadir los Jars que trae la API(creo que son dns,imap,mailapi,pop3 y smtp) y luego ok, ok...

Creo que con esto lo entenderás.
  #9 (permalink)  
Antiguo 07/05/2009, 01:43
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Vale, supuestamente está, pero me puse hacer tu eejemplo y me dan algunos errores

Código:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.*;

public class EnvioSimpleJM
{
	public static void main(String[] args)throws IOException, EmailException
	{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		try {
			Properties props = new Properties();
			
			props.put("mail.smtp.host", "smtp.gmail.com");
			props.put("mail.smtp.port", 465);
			props.put("mail.smtp.socketFactory.port",465);
			props.put("mail.smtp.socketFactory.class","javax.n et.ssl.SSLSocketFactory");
			props.put("mail.smtp.auth","true");
			props.put("mail.smtp.starttls.enable", "true");
			props.put("mail.debug", "true");
			props.put("mail.smtp.socketFactory.fallback","fals e");
			
			Session session = Session.getDefaultInstance(props,new DefaultAuthenticator("[email protected]","tupassw ord"));
			
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress("[email protected]","tunombre"));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]","nombre receptor"));
			
			
			message.setSubject("Subject");
			message.setText("Mensaje");
			
			Transport t = session.getTransport("smtp");
			System.out.println("Conectando");
			t.connect();
			System.out.println("Enviando");
			t.send(message);
			System.out.println("Correo Enviado exitosamente!");
			
			t.close();
			
		} catch (Exception e) {
			System.out.println("Ops!... " + e.getMessage());
		}
	}
}
También he mirado otros ejemlpos de páginas y tampoco soy quien a realizar el código:

http://www.chuidiang.com/java/herram...o-javamail.php
http://www.juguy.org/content/view/48/56/

En fin me sigo peleando con ello.

Editado:
Rojo->Da Error, Amarillo->Puede causar error o no se ha inicializado

Ya se que usas eclipse y lo relacionarias, pero es por si entra gente nueva
  #10 (permalink)  
Antiguo 07/05/2009, 02:49
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

El error de la excepcion es porque te falta

Cita:
import org.apache.commons.mail.*;
Creo que hay que meter algún jar más, del commons email. No se si es necesario o yo lo metí porque empecé a trabajar con JakartaCommons Email (más básico que esta API. Prueba a bajarte esos jars de Jakarta Commons Email, si no es eso no se que es. Seque yo tengo más archivos en la libreria pero no estoy seguro si son esos.

El warning del t.send también lo tengo yo. Se soluciona poniendo Transport.send pero bueno por ahora yo he dejado el warning.
  #11 (permalink)  
Antiguo 07/05/2009, 04:05
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Que va el "commons.mail" no lo tengo solo "coyote" y "catalina" y meti todos los ".jar" que me venian y aún así nada. Lo que voy hacer es mirarlo de otra manera haber que saco, o igual alguien pone aquí debajo una nueva manera, en fin, que por trabajo no será XD

Muchas gracias de todos modos.
  #12 (permalink)  
Antiguo 07/05/2009, 04:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Bajatelo de la pagina Jakarta Commons(buscala en google)-> Email(en una lista)-> Dowload(a la izquierda). NO te pongo el enlace porque todavia no me deja el foro.

Bajate el binary 1.1.zip y extrae la carpeta y mete los 3 jars, junto con los jars de javamail(dns, imap..)

Te tiene que funcionar con eso, yo no tengo nada más porlomenos.
  #13 (permalink)  
Antiguo 07/05/2009, 05:24
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Mil gracias !!!

Ahora solo me queda cual es el "port" que es lo que me da error, pero eso ya me lo tienen que decir aquí
  #14 (permalink)  
Antiguo 07/05/2009, 05:37
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Me alegro que te haya funcionado. En la red tienes un monton de ejemplos que te posibilitan hacer todo.

Un saludo!
  #15 (permalink)  
Antiguo 07/05/2009, 06:09
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Bueno, despues de todo no funciona...

Código:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.apache.commons.mail.*;

import java.io.*;

public class EnvioSimpleJM
{
	public static void main(String[] args)throws IOException, EmailException
	{
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		try {
			Properties props = new Properties();
			
			props.put("mail.smtp.host", "smtp.ornalux.com");
			props.put("mail.smtp.port", 25);
			props.put("mail.smtp.socketFactory.port",25);
			props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
			props.put("mail.smtp.auth","true");
			props.put("mail.smtp.starttls.enable", "true");
			props.put("mail.debug", "true");
			props.put("mail.smtp.socketFactory.fallback","false");
			
			Session session = Session.getDefaultInstance(props,new DefaultAuthenticator("[email protected]","tupassw ord"));
			
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress("[email protected]","Tomás"));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]","Hugo"));
			
			
			message.setSubject("Subject");
			message.setText("Mensaje");
			
			Transport t = session.getTransport("smtp");
			System.out.println("Conectando");
			t.connect();
			System.out.println("Enviando");
			Transport.send(message);
			System.out.println("Correo Enviado exitosamente!");
			
			t.close();
			
		} catch (Exception e) {
			System.out.println("Ops!... " + e.getMessage());
		}
	}
}
Lo que está en Verde es donde falla y salta el error, pues en la consola acaba diciendo Conectando y luego "Ops!... Exception reading response"

Tabién se puede ver en la consola algo que no me gusta nada:

Código:
DEBUG: JavaMail version 1.4.2
DEBUG: URL jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/imap.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/imap.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/pop3.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/pop3.jar!/META-INF/javamail.providers
DEBUG: URL jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/smtp.jar!/META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsy stems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: URL jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/smtp.jar!/META-INF/javamail.address.map
DEBUG: successfully loaded resource: jar:file:/C:/Documents%20and%20Settings/hmunoz/Escritorio/javamail-1.4.2/lib/smtp.jar!/META-INF/javamail.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
Conectando
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.ornalux.com", port 25, isSSL false
DEBUG SMTP: exception reading response: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
Ops!... Exception reading response
Me seguiré pegando con ello y mirando que es "javax.net.ssl.SSLException"
  #16 (permalink)  
Antiguo 07/05/2009, 07:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Con que cuenta estás probandolo? Si es una persona del tipo [email protected] es posible que no tengas activado el ssl. Con poner // delante de ssl es suficiente. Te puede pasar lo mismo con la autentificación y alguna otra cosa que no recuerdo. Pones // en los properties que te sobran. Con host, y port puede serte suficiente.

Te pasé todas porque en gmail por lo menos necesita todos, pero según en que cuenta es posible que no.
  #17 (permalink)  
Antiguo 08/05/2009, 02:01
Avatar de SileBird  
Fecha de Ingreso: abril-2009
Ubicación: http://silekun.elbruto.es
Mensajes: 75
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Pues si, fue quitar eso y funcionar. Lo que pasa que tarda un poco, no?

Muchisimas gracias, ahora tengo que ponerme en serio y hacerlo a lo más profesional
  #18 (permalink)  
Antiguo 08/05/2009, 02:09
 
Fecha de Ingreso: mayo-2008
Mensajes: 65
Antigüedad: 16 años
Puntos: 0
Respuesta: Correos en JSP

Eso de que tarda es relativo, pero bueno diría que no tarda más de 5 segundos con un email de texto plano. Puedes activar el debug para ver que paso está haciendo en cada momento y identificar fallos más fácilmente, pero bueno no pasa de 5-10 segundos diría yo(el enviar mensaje). Luego encesita tiempo autentificandose en el servidor y demás, pero según para que eso solo lo tienes que hacer una vez y puedes mandar o recibir x mails.

A ver si te queda pro pues. Que tengas suerte.

Un saludo y de nada para eso estamos!
  #19 (permalink)  
Antiguo 10/05/2009, 13:24
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 1 mes
Puntos: 15
Respuesta: Correos en JSP

Cita:
Iniciado por SileBird Ver Mensaje
Que va el "commons.mail" no lo tengo solo "coyote" y "catalina" y meti todos los ".jar" que me venian y aún así nada. Lo que voy hacer es mirarlo de otra manera haber que saco, o igual alguien pone aquí debajo una nueva manera, en fin, que por trabajo no será XD

Muchas gracias de todos modos.
Parece un viejo refunfuñon... jajaja.
  #20 (permalink)  
Antiguo 20/07/2009, 12:31
 
Fecha de Ingreso: abril-2009
Mensajes: 66
Antigüedad: 15 años
Puntos: 0
Respuesta: Correos en JSP

Hola, una pregunta.

Pones al principio del mensaje que es para jsp. Pero el código en si que veo es para una aplicación de java normal y corriente.

¿Hay alguna manera para poder poner el código así en un fichero .jsp? No sé mucho de jsp, no sé si es que se me pasó leerme algun manual o algo.

Un saludo
  #21 (permalink)  
Antiguo 21/07/2009, 01:38
Avatar de frilex  
Fecha de Ingreso: junio-2009
Mensajes: 60
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Correos en JSP

Ojo con el antivirus que puede cerrarte el envio de los mensajes
__________________
Fontaneria y tecnico electricista.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:10.