Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/10/2014, 19:01
gil_t_p
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 9 años, 6 meses
Puntos: 0
Error al usar javamail

Error: java.net.SocketException: Permission denied: connect

Que tal,yo se que este problema sea bastante común ya que he visto en distintos foros el mismo problema pero creo que el

mio es un poco distinto. Durante un tiempo eh estado trabajando con la librería de javamail para el envío de correos y todo

me habia salido bien hasta hace unas semanas, resulta que en mi trabajo estoy desarrollando una aplicación basada en java

con el framework de struts 2 y jsp's, mi problema surgió al intentar enviar correos dentro de la red de la empresa ya que

me manda el siguiente error: java.net.SocketException: Permission denied: connect.

He estado buscando alguna solución en muchisimos foros, incluso en inglés y no he podido solucionar este problema. Pregunté

al administrador de la red que si tenía algún firewall en ese puerto el cual me esté bloqueando el acceso pero me dijo que

no tienen configurado ninguno. También me dijo que solo usan ipv4. Comprobé que el puerto no este deshabilitado mediante un

ping al smtp de la compañia y efectivamente tengo respuesta por lo que el servicio si está activo. Estoy usando java 1.7 y

por lo que leí esa versión tiene algunos problemas con la libreria de javamail por lo que instalé la versión 1.6 y aún asi

tengo el mismo problema. Incluso agregué el siguiente código (-Djava.net.preferIPv4Stack=true) a la vm de netbeans pero

sigo sin tener una respuesta favorable, lo curioso es que hice un nuevo proyecto de consola (los que solo aparecen la taza

de café) en netbeans con el mismo código, agregué la misma línea de código (-Djava.net.preferIPv4Stack=true) y sí me dejó

enviar el correo, pero al crear el archivo .jar del proyecto (usando clean and built) y ejecutandolo desde cmd me vuelve a

marcar el mismo error y no envía el correo.

Otra prueba que hice fué llevarme el proyecto a mi casa y ejecutarlo conectado a mi red y efectivamente me deja enviar el

correo, asi que supongo que el problema está en alguna configuración de la empresa y no en el código pero la verdad no

tengo la menor idea de que pueda ser. Les dejo el código que estoy utilizando y espero que alguien me pueda ayudar a dar

solución a este problema.

Cabe mencionar que la dirección de correo del cual estoy enviando los correos no requiere autenticación:

Código:
public class Correo extends ActionSupport {

    private String De;
    private String Para;
    private String Mensaje;
    private String Asunto;

    @Override
    public String execute() {
        try {
            String from = "[email protected]";
            String to = "[email protected]";
            String smtpHost = "smtp.xxxxx.com";
            Properties props = System.getProperties();
            props.put("mail.smtp.host", smtpHost);
            Session sesion = Session.getDefaultInstance(props);

            sesion.setDebug(true);
            MimeMessage message = new MimeMessage(sesion);

            message.setSubject("MENSAJE");
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setText("Texto del mensaje");
            
            Transport.send(message);
            return SUCCESS;
        } catch (MessagingException e) {
            System.out.println(e);
            return ERROR;
        }
    }
}