2014-07-03 4 views
0

Я пытаюсь отправить электронную почту через Java, и я уже делал это раньше, но провайдер, который я использую сейчас, похоже, заблокировал все порты, поскольку у меня есть этот код:Java-почта не удается подключиться к порту

 Properties props = new Properties(); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.smtp.port", "587"); 
     // tried props.put("mail.smtp.port", "25"); 
     //props.put("mail.smtp.port", "8889"); For my personal host setting 
     props.put("mail.smtp.timout", "10000"); 

проблема заключается в том, я получаю Could not connect to port error, так что в случае, если провайдер блокирует все порты, есть ли возможный способ отправить электронную почту или просто в случае, может быть что-то не так с моим подходом. (он работает с некоторыми интернет-провайдерами, но не с тем, который мне нужен для запуска кода)

+0

вы пробовали 465 с использованием протокола SSL? –

+0

@JorgeCampos: да все же ошибка порта – JAX

+0

Обратитесь к вашему интернет-провайдеру. Я не думаю, что это может быть проблемой программирования, если код работает в другом месте. –

ответ

0

Попробуйте это, если это поможет (для Gmail).

Некоторые из приведенных ниже строк могут не потребоваться, но я не тестировал каждую строку, просто использовал эти пары ключ-значение и работал нормально.

Properties props = new Properties(); 
    props.put("mail.smtp.user", senderEmailAddress); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.port", "465"); 
    props.put("mail.smtp.starttls.enable","true"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.socketFactory.port", port_port); 
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.socketFactory.fallback", "false"); 

    //SecurityManager security = System.getSecurityManager(); 

Для моего местного Email Я использовал этот (не SSL)

System.setProperty("sun.security.ssl.allowUnsafeRenegotiation","true"); 
    Properties props = new Properties(); 
    props.put("mail.smtp.user", senderEmailAddress); 
    props.put("mail.smtp.host", host_name); //for me : mail.mydomain.com 
    props.put("mail.smtp.port", smtp_port); //mine is "25" 
    props.put("mail.transport.protocol", "smtp"); 
    props.setProperty("mail.smtp.quitwait", "false"); 
    props.put("mail.smtp.auth", "true"); 
    //props.put("mail.smtp.starttls.enable","true");   
    //props.put("mail.smtp.socketFactory.port", smtp_port); 
    //props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    //props.put("mail.smtp.socketFactory.fallback", "false"); 

//SecurityManager security = System.getSecurityManager(); 
+0

Все еще я получаю сообщение 'can not connect to port ' – JAX

Смежные вопросы