2013-12-24 6 views
0

Этот вопрос перешел к более определенному вопросу из довольно расплывчатого. Код исходит от example by mkyong. По крайней мере, согласно Google, it's a bad password, и я следил за их предложением для входа. Конечно, я получаю тот же результат при вводе правильного пароля, пароль ниже - это манекен. Это тот же результат независимо от пароля.SendFailedException: неверный пароль

Выход:

BUILD SUCCESSFUL 
Total time: 1 second 
-- listing properties -- 
mail.smtp.gmail=smtp.gmail.com 
mail.smtps.quitwait=true 
[email protected] 
mail.smtp.starttls.enable=true 
mail.smtp.connectiontimeout=2000 
mail.smtp.user=hawat.thufir 
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory 
mail.smtp.password=password 
nntp.host=nntp://localhost/ 
mail.smtp.socketFactory.port=465 
mail.smtp.timeout=2000 
mail.imap.port=993 
mail.imap.timeout=5000 
mail.smtp.port=587 
mail.smtp.auth=true 
mail.imap.host=imap.gmail.com 
mail.nntp.newsrc.file=/home/thufir/.newsrc 
mail.imap.connectiontimeout=5000 
mail.smtp.host=smtp.gmail.com 

========message follows========== 

Exception in thread "main" java.lang.RuntimeException: javax.mail.SendFailedException: Send failed; 
    nested exception is: 
    javax.mail.SendFailedException: 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 g6sm55120721pat.2 - gsmtp 
    at net.bounceme.dur.nntp.SendTLS.sendMessage(SendTLS.java:61) 
    at net.bounceme.dur.nntp.SendTLS.<init>(SendTLS.java:23) 
    at net.bounceme.dur.nntp.SendTLS.main(SendTLS.java:34) 
Caused by: javax.mail.SendFailedException: Send failed; 
    nested exception is: 
    javax.mail.SendFailedException: 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 g6sm55120721pat.2 - gsmtp 
    at javax.mail.Transport.doSend(Transport.java:231) 
    at javax.mail.Transport.send(Transport.java:75) 
    at net.bounceme.dur.nntp.SendTLS.sendMessage(SendTLS.java:57) 
    ... 2 more 
[email protected]:~/NetBeansProjects/MailFromNNTP$ 

код:

public class SendTLS { 

    public SendTLS() { 
     try { 
      sendMessage(); 
     } catch (NoSuchProviderException ex) { 
      Logger.getLogger(SendTLS.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (MessagingException ex) { 
      Logger.getLogger(SendTLS.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (IOException ex) { 
      Logger.getLogger(SendTLS.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    public static void main(String[] args) { 
     new SendTLS(); 
    } 

    private void sendMessage() throws NoSuchProviderException, MessagingException, IOException { 
     Properties props = PropertiesReader.getProps(); 
     props.list(System.out); 
     System.out.println("\n========message follows==========\n"); 
     final String username = props.getProperty("mail.smtp.username"); 
     final String password = props.getProperty("mail.smtp.password"); 
     Session session = Session.getInstance(props, 
       new javax.mail.Authenticator() { 

        @Override 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(username, password); 
        } 
       }); 
     try { 
      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("[email protected]")); 
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 
      message.setSubject("Testing Subject"); 
      message.setText("Dear Mail Crawler,\n\n No spam to my email, please!"); 
      Transport.send(message); 
      System.out.println("Done"); 

     } catch (MessagingException e) { 
      throw new RuntimeException(e); 
     } 
    } 
} 
+1

Is портировать Integer (а не строка Просто угадать: P)? Также попробуйте заменить getDefaultInstance на Session.getInstance (реквизиты). И если это не поможет. Попробуйте реквизиты «mail.smtp.connectiontimeout» и «mail.smtp.timeout» и установите предел для получения stacktrace. Часто это проблема брандмауэра/порта/сети. – Caadi0

+0

строка 58 - это соединение: «transport.connect (хост, порт, пользователь, пароль)»; и, кстати, порт - это int. Конечно, я испробовал правильный пароль. ' – Thufir

+0

Я знаю, что это было через несколько изменений. Это довольно странно, обходя файл свойств до минимального минимума на самом деле ** вводит ** ошибки в 'SendTLS'. – Thufir

ответ

1

Поскольку вы подключаетесь к Gmail. Используйте эти свойства

prop.put("mail.smtp.starttls.enable", "true"); 
prop.put("mail.smtp.host", host); 
prop.put("mail.smtp.user", from); 
prop.put("mail.smtp.password", pass); 
prop.put("mail.smtp.port", "465"); 
prop.put("mail.smtp.auth", "true"); 

идут также через этот http://www.oracle.com/technetwork/java/javamail/faq/index.html#commonmistakes

*Post was modified after answering, answer may no longer be relevant* 
+0

Оставить комментарий, если это не поможет :) – Caadi0

+0

Я попробую это, выглядит интересно. Зачем мне нужен аутентификатор, или это как инструмент отладки, чтобы получить больше выходных данных? (т. е. неправильный пароль и т. д.) – Thufir

+0

- это внутренний класс? внутри 'Gmail'? Или, в том же файле .java, что и 'Gmail', но не внутренний? или в своем собственном .java-файле? http://docs.oracle.com/javaee/6/api/javax/mail/Authenticator.html#getPasswordAuthentication%28%29 защищен – Thufir

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

  • Нет связанных вопросов^_^