Problema con javaMail

Alvaro
18 de Marzo del 2010
Aqui les envio el codigo completo q utilizo en mi aplicacion, comienza con un registrar.jsp, donde existe un formulario donde se solicitan 2 datos un e-mail y un nombre como clave, luego los parametros son recibidos por un Servlet que los envia a otra clase(envioMail.java) que es la encargada de enviar el mail por servidor SMTP y luego muestra una vista con el mail.

El error q me sale es "java.mail.NoSuchProviderException: smtp"

Este es el servlet:
//--------------------------------
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import codigo.EnvioMail;
public class Servito extends HttpServlet{
String clave;
String email;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
email = request.getParameter("userName");
clave = request.getParameter("password");
//*************************************
//aqui envio los parametros a la clase de envio
EnvioMail.enviando(email, clave);
//*************************************
response.setContentType("text/Html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<p>"+email+"</p>");
out.println("<p> Gracias. Revise su mail!");
out.println("</body>");
out.println("</html>");
out.close();
}
}
//--------------------------------


Este es el envioMail.java:

import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

//** autor: @aleiva
public class EnvioMail {
public static void main (String[] arg){
enviando("From","Nombre");
}
public static void enviando(String Para, String Nom) {
try {
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "mail.tuServidor.com");//Aqui va el nombre del servidor
props.put("mail.smtp.port", "25");
Session mailSession = Session.getInstance(props);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress("[email protected]"));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(Para));//aquien va el mail
msg.setSentDate(new java.util.Date());
msg.setSubject("Pruebas");
msg.setText("Este mensaje te lo envio de Prueba "+Nom);
try {
Transport myTrans = mailSession.getTransport("smtp");
myTrans.connect();
myTrans.sendMessage(msg, msg.getAllRecipients());
myTrans.close();
} catch (SendFailedException e) {
Address[] list = e.getInvalidAddresses();
for (int i = 0; i < list.length; i++) {
System.out.println("Inval "+list[i]);
}
list = e.getValidUnsentAddresses();
for (int i = 0; i < list.length; i++) {
System.out.println("UnSent address "+list[i]);
}
list = e.getValidSentAddresses();
for (int i = 0; i < list.length; i++) {
System.out.println("Sent address "+list[i]);
}
}
System.out.println("Revisar mail: "+Para);
//antes usaba el metodo statico send
//Transport.send(msg);

} catch (Exception E) {
System.out.println(E);
}
}

}
//----------------------------------------------------------






Pdta: Programo en Eclipse 3.0 y lo compilo en el jakarta-tomcat-5.0.28

clakpst
18 de Marzo del 2010
Mira a ver si el servidor Smtp requiere autenticacion

[email protected]
18 de Marzo del 2010
Estoy intentando ejecutar este mismo código a la hora de establecer el mensaje "[email protected]", el proceso se sale de la ejecución.

Error:
Exception in thread main
java.lang.NoClassDefFoundError: javax.activation.DataSource
at mailv1.J2Mail.send(J2Mail.java:46)
at mailv1.J2Mail.main(J2Mail.java:115)
Process exited.

Made in Spain
18 de Marzo del 2010
Es debido a que no había importado el paquete javax.activation
Saludos