2011-07-23 21 views
6

Neden bu özel durumu alıyorum anlamadım. Bu, e-posta mesajı göndermeye çalışan koddur.javax.mail.AuthenticationFailedException: 535 5.0.0 Kimlik Doğrulama Başarısız Oldu

public void sendAsHotmail() { 
    final String username = jTextField14.getText(); 
    final String password = jPasswordField4.getText(); 
    String subject = jTextField16.getText(); 
    String Cc = jTextField17.getText(); 
    String Bcc = jTextField18.getText(); 
    String recipient = jTextArea5.getText(); 

    Properties props = new Properties(); 
    props.put("mail.smtp.host" , "smtp.live.com"); 
    props.put("mail.smtp.user" , username); 

    // Use TLS 
    props.put("mail.smtp.auth" , "true"); 
    props.put("mail.smtp.starttls.enable" , "true"); 
    props.put("mail.smtp.password" , password); 

    Session session = Session.getDefaultInstance(props , new Authenticator() { 
     @Override 
       protected PasswordAuthentication getPasswordAuthentication() { 
        if(username == null | password == null) 
         JOptionPane.showMessageDialog(new JFrame() , "username or password incorrect"); 
        return new PasswordAuthentication(username , password); 
       } 
    }); 
    String to = recipient; 
    String from = username + "@hotmail.com"; 
    String emailMessage = jTextArea2.getText(); 
    MimeMessage message = new MimeMessage(session); 
    MimeBodyPart attachment = new MimeBodyPart(); 
    MimeBodyPart messagePart = new MimeBodyPart(); 
    FileDataSource fds = new FileDataSource(fileName); 

    try { 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); 
     message.setFrom(new InternetAddress(from)); 
     message.setSubject(subject); 
     message.setText(emailMessage); 
     attachment.setDataHandler(new DataHandler(fds)); 
     attachment.setFileName(fileName); 
     messagePart.setText(emailMessage); 
     Multipart hotmailMP = new MimeMultipart(); 
     hotmailMP.addBodyPart(attachment); 
     hotmailMP.addBodyPart(messagePart); 
     message.setContent(hotmailMP); 
     Transport transport = session.getTransport("smtp"); 
     transport.send(message); 
     JOptionPane.showMessageDialog(new JFrame() , "mail sent !");  
    } catch(Exception exc) { 
     System.out.println(exc); 
    } 
} 

Neden bu özel durumu alıyorum? Kodda bir sorun varsa lütfen sorunun ne olduğunu söyleyin. SMTP reply codes

Ne 5.0.0 anlama geldiğini görmek için SMTP sunucusunun kılavuzu kontrol etmek gerekebilir bkz:

+0

Bu kodda hiçbir şeyin yanlış olduğunu düşünmüyorum. –

cevap

4

@ Mi Mee ile katılıyorum. Kullanıcı adınızda, eksik kullanıcı adı (Bu nedenle Kimlik Doğrulama başarısız oldu) alıyor gibi görünüyor. Hotmail için, [email protected] , [email protected]vb

Yani doğru kullanıcı adını almak olabilir sizin Windows Live Id girmek zorunda. Ve @hotmail.com'u from değişkeninden kaldırın. Kodun geri kalanı iyi.

+0

evet! o şeyi fark etmedim –

5

535 kötü adı veya şifre anlamına gelir.

İlgili konular