2011-04-25 8 views
1

Java Mail API를 처음 사용하고 있는데 작동하지 않습니다. 내 서버에는 인증이 필요하므로이를 사용해야합니다. 당신이 볼 수 있듯이, 내가 "인증 성공"메시지를 받고 있어요,하지만 그것이 나를 추방Java 메일 인증 오류

> 250-PIPELINING 250-SIZE 40960000 
> 250-ETRN 250-STARTTLS 250-AUTH PLAIN 
> LOGIN 250-AUTH=PLAIN LOGIN 
> 250-ENHANCEDSTATUSCODES 250 8BITMIME 
> DEBUG SMTP: Found extension 
> "PIPELINING", arg "" DEBUG SMTP: Found 
> extension "SIZE", arg "40960000" DEBUG 
> SMTP: Found extension "ETRN", arg "" 
> DEBUG SMTP: Found extension 
> "STARTTLS", arg "" DEBUG SMTP: Found 
> extension "AUTH", arg "PLAIN LOGIN" 
> DEBUG SMTP: Found extension 
> "AUTH=PLAIN", arg "LOGIN" DEBUG SMTP: 
> Found extension "ENHANCEDSTATUSCODES", 
> arg "" DEBUG SMTP: Found extension 
> "8BITMIME", arg "" DEBUG SMTP: Attempt 
> to authenticate DEBUG SMTP: check 
> mechanisms: LOGIN PLAIN AUTH LOGIN 334 
> Base64text base64text 334 base64text 
> base64text 235 2.7.0 Authentication 
> successful DEBUG: getProvider() 
> returning 
> javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun 
> Microsystems, Inc] DEBUG SMTP: useEhlo 
> true, useAuth true 
> javax.mail.AuthenticationFailedException: 
> failed to connect, no password 
> specified? 
>   at javax.mail.Service.connect(Service.java:329) 
>   at javax.mail.Service.connect(Service.java:176) 
>   at javax.mail.Service.connect(Service.java:125) 
>   at javax.mail.Transport.send0(Transport.java:194) 
>   at javax.mail.Transport.send(Transport.java:124) 
>   at Mailman.main(Mailman.java:61) 

: 나는 다음과 같은 오류가 계속 "AuthenticationFailedException." 내가

message.setText("This is actual message"); 

      Transport transport = session.getTransport("smtp"); 
       transport.connect(null,smtpUser,smtpPassword); //host, 25, "myemailhere", "mypasshere"); 
       message.saveChanges(); 
       transport.sendMessage(message,message.getAllRecipients()); 

//    Transport.send(message); 



      // Send message 
      // Transport.send(message); 
      System.out.println("Sent message successfully...."); 

로 변경

답변

1

... 어떤 제안을 크게 감상 할 수

properties.setProperty("mail.smtp.host", host);    
     properties.setProperty("mail.smtp.port", "25"); 


     properties.setProperty("mail.smtp.user", "myemailhere"); 
     properties.setProperty("mail.smtp.password", "mypasshere"); 
     properties.setProperty("mail.smtp.auth", "true");  
     properties.setProperty("mail.debug", "true"); 


     // Get the default Session object. 
     Session session = Session.getDefaultInstance(properties); 

     try{ 
     // Create a default MimeMessage object. 
     MimeMessage message = new MimeMessage(session); 

     // Set From: header field of the header. 
     message.setFrom(new InternetAddress(from)); 

     // Set To: header field of the header. 
     message.addRecipient(Message.RecipientType.TO, 
            new InternetAddress(to)); 

     // Set Subject: header field 
     message.setSubject("This is the Subject Line!"); 

     // Now set the actual message 
     message.setText("This is actual message"); 

     Transport transport = session.getTransport("smtp"); 
      transport.connect(host, 25, "myemailhere", "mypasshere"); 
      message.saveChanges(); 
      Transport.send(message); 



     // Send message 
     Transport.send(message); 
     System.out.println("Sent message successfully...."); 
     }catch (MessagingException mex) { 
     mex.printStackTrace();   
     }  

: 나는 여기

소스의 관련 부분 ... 난처한 상황에 빠진거야 그것이 작동했습니다

+0

저는 대개 모든 대문자를지지하지는 않지만 ... 고맙습니다! 나는 지금 몇 시간 동안이 물건을 꼼짝 않고 바라보고 있었다. 당신의 솔루션은 매력처럼 작동했습니다. – Jeff

+0

문제 없습니다. Javamail API를 발견했습니다 ... squirrely는 자선 기한입니다. 모든 것이 작동하지만 지점 a에서 점 b로가는 것이 항상 명확하지는 않습니다. – MJB