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

ayuda con javax.mail.MessagingException:Could not connect to SMTP ....

Estas en el tema de ayuda con javax.mail.MessagingException:Could not connect to SMTP .... en el foro de Java en Foros del Web. Hola amigos!! Vuelvo a estar atascado con mi proyecto sobre java, esta vez por culpa de un chat y del javamail (el problema que tuve ...
  #1 (permalink)  
Antiguo 31/05/2006, 17:03
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 0
ayuda con javax.mail.MessagingException:Could not connect to SMTP ....

Hola amigos!!

Vuelvo a estar atascado con mi proyecto sobre java, esta vez por culpa de un chat y del javamail (el problema que tuve con éste hace tiempo ya lo solucione gracias a Greeneyed!!).
He hecho los programa de ambas aplicaciones y me he instalao el Tomcat en mi ordenador de casa, como servidor SMTP me he bajao el MiniRelay. El caso es que ambas cosas funcionan sin problemas cuando las pruebo en este servidor, pero cuando las subo al servidor de mi uni entonces no puedo ejecutar ninguna de las 2. Entiendo que es normal que esto ocurra ya que la mayoria de los puertos de la uni solo son accesibles dsde dentro de la uni.

Probe desde dentro de la uni y tampoco pude ejecutar ninguna de las 2 cosas, y los errores que obtenia eran los mismos que desde casa, por ahora os comentare el del javamail porque no os quiero aburrrir demasiao jeje.
Para hacer el proyecto tenemos asignados unos puertos TCP/UDP para sockets y yo puedo usar el 4210 por ejemplo.El caso es que obtengo este error:

javax.mail.MessagingException: Could not connect to SMTP host: 158.227.68.208, port: 4210;

nested exception is:
java.net.ConnectException: Connection refused: connect

Mi profesor me dice que esto no puede darme porque los puertos estan activados y que otros grupos no han tenido estos problemas, y no sabe que pasa, ya que el ordenador no tiene firewall de windows activado y creo que tampoco el del antivirus. Habia pensado en cambiar los archivos java.policy, pero como no soy el administrador no puedo.

LLegado este punto me estoy quedando sin opciones, probe a ejecutar el comando "netstat -putan" para ver los servicios arrancados en la maquina, y no vi que aparecieran los puertos que tenemos asignados.
Yo me planteo varias opciones:
Que los puertos esten cerrados(cosa que parece improbable) o que tenga algo mal del codigo, tal vez no he abierto bien la conexion o tiene que ver con los sockets. Por eso dejao aqui el codigo que no es nada del otro mundo:

Código PHP:
import javax.swing.*;  
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.mail.*;
import javax.mail.event.*;
import javax.mail.internet.*;
import java.applet.*;
import javax.activation.*;



/**
 * Sample application using Frame
 *.
 * @author 
 * @version 1.00 06/05/08
 */
public class Mail extends JApplet {
    
    
String mailHost="158.227.68.208";
    
JLabel toLabel=new JLabel("Para:");
    
JLabel fromLabel=new JLabel("De:");
    
JLabel subjectLabel=new JLabel("Asunto:");
    
JLabel contentLabel = new JLabel("Mensaje");
    
JLabel statusLabel = new JLabel("Status:");
    
JTextField destination = new JTextField();
    
JTextField source = new JTextField();
    
JTextField subject = new JTextField();
    
JTextArea content = new JTextArea();
    
JButton send = new JButton("Enviar");
    
JTextArea status = new JTextArea();
    
    public static 
void main(String args[]){
        
Mail app = new Mail();
    }
    
    public 
Mail(){
        
        
layoutComponents();
        
send.addActionListener(new ButtonHandler());
    } 
    
   
    
    
    
void layoutComponents(){
        
int x=10;
        
int y 50;
        
toLabel.setBounds(x,y,50,25);
        
destination.setBounds(x+70,y,300,25);
        
fromLabel.setBounds(x,y+40,50,25);
        
source.setBounds(x+70,y+40,300,25);
        
subjectLabel.setBounds(x,y+80,50,25);
        
subject.setBounds(x+70,y+80,300,25);
        
contentLabel.setBounds(x,y+120,50,25);
        
content.setBounds(x+70,y+120,300,100);
        
statusLabel.setBounds(x,y+240,50,25);
        
status.setBounds(x+70,y+240,300,100);
        
send.setBounds(400,y,100,30);
        
        
add(toLabel);
        
add(destination);
        
add(send);
        
add(fromLabel);
        
add(source);
        
add(subjectLabel);
        
add(subject);
        
add(contentLabel);
        
add(content);
        
add(statusLabel);
        
add(status);
        
add(new JLabel(""));
    }
    
    
void sendMessage(){
        
Properties properties = new Properties();
        
properties.put("mail.smtp.host",mailHost);
        
properties.put("mail.smtp.port""4210");
        
properties.put("mail.from",source.getText());
        
Session session=Session.getInstance(properties,null);
        try {
            
Message message = new MimeMessage(session);
            
InternetAddress[] address={ new InternetAddress(destination.getText())};
            
message.setRecipients(Message.RecipientType.TO,address);
            
message.setFrom(new InternetAddress(source.getText()));
            
message.setSubject(subject.getText());
            
message.setContent(content.getText(),"text/plain");
            
Transport transport session.getTransport(address[0]);
            
transport.addConnectionListener(new ConnectionHandler());
            
transport.addTransportListener(new TransportHandler());
            
transport.connect();
            
transport.sendMessage(message,address);
            }catch(
Exception e){
                
status.setText(e.toString());
            }
    }
    
    class 
ConnectionHandler extends ConnectionAdapter {
        public 
void opened(ConnectionEvent e){
            
status.setText("Connection opened.");
        }
        public 
void disconnected(ConnectionEvent e){
            
status.setText("Connection disconnected.");
        }
        public 
void closed(ConnectionEvent e){
            
status.setText("Connection closed.");
        }
    }
    
    class 
TransportHandler extends TransportAdapter {
        public 
void messageDelivered(TransportEvent e){
            
status.setText("Message delivered.");
        }
        public 
void messageNotDelivered(TransportEvent e){
            
status.setText("Message Not delivered.");
        }
        public 
void messagePartiallyDelivered(TransportEvent e){
            
status.setText("Message partially delivered.");
        }
    }
    
    class 
ButtonHandler implements ActionListener {
        public 
void actionPerformed(ActionEvent ev){
            
String s=ev.getActionCommand();
            if(
s.equals("Enviar")) sendMessage();
        }
    }
    
    class 
MenuItemHandler implements ActionListener {
        public 
void actionPerformed(ActionEvent ev){
            
String s=ev.getActionCommand();
            if(
s=="Exit"){
                
System.exit(0);
            }
        }
    }
    
    class 
WindowEventHandler extends WindowAdapter {
        public 
void windowClosing(WindowEvent e){
            
System.exit(0);
        }
    }

Espero que alguien sepa que es lo que ocurre porque yo ya no se que puede ser.

Un saludo!!
  #2 (permalink)  
Antiguo 01/06/2006, 01:53
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
"java.net.ConnectException: Connection refused: connect" es un sintoma de problemas en las comunicaciones, más que en tu aplicación.

A primera vista, parece que el ordenador con la IP que muestras no tiene ese puerto accesible desde el tuyo, o que rechaza las comunicaciones de tipo SMTP que le pides.

Asegurate de que puedes acceder a ese ordenador por ese puerto (con un telnet a ese puerto, por ejemplo, si esta abierto te dejara la pantalla en negro, si esta cerrado te dara un error directamente) y si esta abierto, comprueba que lo que hay contestando en ese puerto es realmente un servidor SMTP (puerto estandar es el 25), por ejemplo configurando un cliente normal de correo contra el para ver si se comunica.

Suerte
  #3 (permalink)  
Antiguo 01/06/2006, 07:15
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 0
Hola, quiza me haya explicado mal con tal parrafada, mi gran problema es que no me deja acceder desde el ordenador de la uni, a la propia direccion IP esa, que es un servisor de la uni. Lo cual no deberia de poder pasar.
Hice desde la uni el telnet con esa direccion IP y el puerto 25 hace un tiempo y si no recuerdo mal me dio un error, pero mi profesor me dijo que eso era normal pork el telnet solo se podia realizar con el puerto 22.
Hoy supongo ke ire de nuevo alli para probar de nuevo por si esque al final no hice el telnet con el puerto 25, aunque de todas formas mi profesor me dijo ke deberia de usar el puerto 4210, que al hacer el telnet tambien me da un error.
¿Entonces no es nada del código,no tiene nada que ver con creacion y apertura de sockets ni nada de eso??

Saludos
  #4 (permalink)  
Antiguo 01/06/2006, 10:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Cuando haces un telnet a un puerto donde hay un servidor de correo te acbará dando, obviamente, un error, puesto que no es un servidor de telnet, pero el error es diferente de si el puerto no esta abierto o no hay nada escuchando, para eso sirve.

Yo si hago un telnet a mi servidor de correo en el puerto 25 me sale "XXX SMTP server" y se me queda bloqueado, pero no me da "Error en la conexion, no se puede abrir la conexion al host" como me sale si intento en el puerto 26 (donde obviamente no hay nada).

El error que te da es que no pudo conectarse a ese host en ese puerto, por problema de acceso, por que lo que escucha en ese puerto no entiende SMTP o no hay nada, pero en principio no por que el codigo este mal.

¿El profesor te ha dicho que tienes ahi un servidor de correo escuchando por ese puerto? ¿Has probado a configurar el Thunderbird, por ejemplo, para que intente conectarse a ese servidor de correo?
  #5 (permalink)  
Antiguo 02/06/2006, 05:38
 
Fecha de Ingreso: marzo-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 0
Ya he conseguido solucionar el tema. Tenias razon, en el servidor de mi uni no hay ningun servidor smtp en ese puerto ni en ninguno, no se porque mi profesor me ha dicho que si que habia....
Lo que he hecho ha sido usar el servidor SMTP de otra maquina y ya me funciona.Ahora me toca pegarme con el chat, con el que desgraciadamente me ocurre algo parecio, problemas de puertos. Espero solucionarlo y sino volvere a dejar un mensaje por aqui jeje, que ultimamnte me sirven bastante de ayuda :).

Saludos!!
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 23:45.