Problema con mi aplicacion javaMail de java

mi problema es que cuando me logeo ingresa correctamente menos el servidor de yahoo(problema del propio servidor en si) ese no es el problema ya cuando intento enviar emails funciona correctamente sin ningun problema , la cosa esta que cuando hago logout(cierro la sesion) y vuelve a logearme pero con otro servidor de correo ,la autenticacion me sale invalida , y es que se conecta con el servidor anterior y no con el que selecciono , y no me deja logearme correctamente ,tengo que volver a ejecutar la aplicacion y escoger de nuevo la opcion ,se que es un error de logica nada mas pero no lo resuelvo por favor ayudenme
les dejo mi archivo para que lo revisen,olvide decir de que se trata es simplemente un programa para enviar emails que usa la api javamail para ese proposito y esta hecho con el patron MVC y con componentes de javax.swing

AdjuntoTamaño
email.rar7.86 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

coments

nuevo comentario

visita Java Zone

hey mira aqui esta un ejemplo completo, revisalo y mira como se hace

solucionado gracias

bueno interesante la pagina , eso me hace pensar que aun me falta mucho por aprender , mi programa esta en pañales todavia pensaba agregar mas cosas igual de todas maneras gracias por el aporte

Probelmas con javamail

Hola mira mi aplicacion la probre como servlet, en la mayoria de las maquinas funciona lo raro es que lo ejecuto en una maquina de 64 bits y me da el siguiente error
11/07/01 10:18:13 javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. s31sm147692yba.29

11/07/01 10:18:13 at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
11/07/01 10:18:13 at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
11/07/01 10:18:13 at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
11/07/01 10:18:13 at view.Servlet1.mail(Servlet1.java:78)
11/07/01 10:18:13 at view.Servlet1.doGet(Servlet1.java:26)
11/07/01 10:18:13 at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
11/07/01 10:18:13 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
11/07/01 10:18:13 at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
11/07/01 10:18:13 at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
11/07/01 10:18:13 at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
11/07/01 10:18:13 at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
11/07/01 10:18:13 at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:226)
11/07/01 10:18:13 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:127)
11/07/01 10:18:13 at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:116)
11/07/01 10:18:13 at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
11/07/01 10:18:13 at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
11/07/01 10:18:13 at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
11/07/01 10:18:13 at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
11/07/01 10:18:13 at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298)
11/07/01 10:18:13 at java.lang.Thread.run(Thread.java:595)

Imagen de ezamudio

64 bits?

Qué tiene que ver que sea de 64 bits? Está claro que el problema es de conexión... debes habilitar TLS en javamail (mail.smtps.starttls.enable=true).

Al parecer tu máquina de 64

Al parecer tu máquina de 64 bits intenta mandar un correo a otro servidor:

 

STARTTLS significa que tienes que incluir ese saludo ( o la verdad es que no sea que sea ) pero busca eso en Google, es una propiedad que le tienes que poner algo como

 

O algo así ( por eso te digo que lo busques )

Pero el hecho de que te lo pide en una máquina y en otra no, quiere decir que tu máquina se está conectando a otro lado O está en otro dominio.

Espero que te sirva.

Andale ese :

Andale ese :  

Lo de los 64bits es una casualidad

no se que hacer

lo que pasa es que las dos maquinas estan en el mismo dominio en una me funciona y en la otra no les envio el codigo para ver que puede ser
las maquinas son windows 7 home en la que me funciona, el otro es un windows profesinal 7 y no funciona aqui va el codigo

package view;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Properties;

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

public class Servlet1 extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";

public void init(ServletConfig config) throws ServletException {
super.init(config);
}

public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
mail();
out.println("");
out.println("Servlet1");
out.println("");
out.println("

The servlet has received a GET. This is the reply.

");
out.println("");
out.close();
}
public static void mail()
{
try
{
System.out.println("entroxxxxx");
// Propiedades de la conexión
Properties props = new Properties();
System.out.println("entro1");
// mail.smtp.starttls.enable = true;
//mail.smtp.starttls.required = true;
props.setProperty("mail.smtp.host", "smtp.gmail.com");
System.out.println("entro2");
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty(" mail.smtp.starttls.required","true");
props.setProperty("mail.smtps.starttls.enable","true");

// mail.smtps.starttls.enable=true
System.out.println("entro3");
props.setProperty("mail.smtp.port", "587");
System.out.println("entro4");
props.setProperty("mail.smtp.user", "luhercru");
System.out.println("entro5");
props.setProperty("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable","true");
System.out.println("entro6");
System.out.println("eee");
// Preparamos la sesion
Session session = Session.getDefaultInstance(props);
System.out.println("eee1");
// Construimos el mensaje
MimeMessage message = new MimeMessage(session);
System.out.println("eee2");
message.setFrom(new InternetAddress("luhercru@gmail.com"));
System.out.println("eee3");
message.addRecipient(
Message.RecipientType.TO,
new InternetAddress("l_hern_2000@yahoo.com"));
System.out.println("eee4");
message.setSubject("Hola");
message.setText(
"Mensajito con Java Mail" + "de los buenos." + "poque si");

// Lo enviamos.
Transport t = session.getTransport("smtp");
System.out.println("eee5");
t.connect("smtp.gmail.com","luhercru@gmail.com", "xxxxxxx");
System.out.println("eee");
t.sendMessage(message, message.getAllRecipients());

// Cierre.
t.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

espero su ayuda ya no se que mas colocar

el mismo

a y el problema no es que no se conecta me lo da en la linea t.sendMessage(message, message.getAllRecipients());

Imagen de ezamudio

codigo

Si el mismo código funciona en una máquina y en otra no, es evidente que la bronca no está en el código, sino en la configuración de los equipos.