Java - envio de correos electronicos

 
Vista:

envio de correos electronicos

Publicado por carcaharas (58 intervenciones) el 30/03/2007 19:28:11
Hola estoy intentando aprender a utilizar el javamail y he hecho una pequeña página de prueba. (por cierto, yo mi conexion a internet la tengo a traves de ono , por lo del smtp ok?) Bueno el código es:

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class EnviarCorreo {

public static void main(String [] args) {

String from="[email protected]";

String to="[email protected]";

// Se obtienen las propiedades del sistema y se establece el servidor SMTP
//String smtpHost = "smtp.auna.com";
Properties props = System.getProperties();
props.put("mail.smtp.host", "smtp.ono.com");
// Se obtiene una sesión con las propiedades anteriormente definidas
Session sesion = Session.getDefaultInstance(props,null);
// Capturar las excepciones
try {
// Se crea un mensaje vacío
Message mensaje = new MimeMessage(sesion);

// Se rellenan los atributos y el contenido
// Asunto
mensaje.setSubject("Hola Mundo");
// Emisor del mensaje
mensaje.setFrom(new InternetAddress(from));
// Receptor del mensaje
mensaje.addRecipient( Message.RecipientType.TO,
new InternetAddress(to));
// Cuerpo del mensaje
mensaje.setText("Este es el cuerpo del mensaje");
// Se envía el mensaje
Transport.send(mensaje);
} catch (MessagingException e) {
System.err.println(e.getMessage());
}
}
}

Vale ejecuto la clase y me da el siguiente error:

java.lang.NoClassDefFoundError: javax/activation/DataSource

at ObjetosDeNegocio.EnviarCorreo.main(EnviarCorreo.java:31)

Exception in thread "main"

la línea concreta en la que me da el error es:

Message mensaje = new MimeMessage(sesion);

¿Por qué puede ser?¿Veis algo raro? El código lo he copiado de un manual que me estoy leyendo y solo he puesto yo el from y el to (las dos direcciones de correo) y en lo de smtp he puesto el de ono (yo no sabia que smtp poner y he buscado por internet cual es el de ono)
Espero uqe me podais ayudar. Muchas gracias!
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

RE:envio de correos electronicos

Publicado por Danilo Juvinao (278 intervenciones) el 30/03/2007 21:29:47
PARA MI GUSTO LAS PROPIEDADES DEBERIAN SER ASI:

props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "direccion se encuentra el server de smtp");

PARA ENVIAR EL MENSAJE NO USARIA DIRECTAMENTE LA CLASE Transport SINO UNA INSTANCIA DE ESA CLASE ASI:

Transport transport = sesion.getTransport();

transport.connect();
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();

ASI LO TENGO Y ME FUNCIONA.

ADEMAS EL ERROR QUE TE SALE CON javax/activation/DataSource ES PORQUE NO SE SI LO HICISTE PERO PARA USAR JAVAMAIL NO SOLAMENTE NECESITAS mail.jar SINO TAMBIEN activation.jar

Exitos
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

RE:envio de correos electronicos

Publicado por Mario (622 intervenciones) el 30/03/2007 23:33:33
Apoyo la respuesta de mi colega, y tambien te recomiendo usar Commons Email del proyecto Jakarta para simplificar el codigo y muchas cosillas más (HTML, attachmates) etc

Saludos comunidad open source
Neos Software Inc 2007
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

RE:envio de correos electronicos

Publicado por CARCAHARAS (58 intervenciones) el 31/03/2007 00:53:13
oye muchas gracias a los dso voy a mirar todo. GRACIAS
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

RE:envio de correos electronicos

Publicado por aurelio (1 intervención) el 31/03/2007 03:15:49
solo apuntas el correo y listooo!
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