2016-08-15 1 views
0

최근 이메일을 Google Apps로 이동했습니다. 이제 로그인을 통해 gmail.com의 내 이메일 계정으로 메일을보고 보낼 수 있습니다.JavaMail : Google Apps로 전송 된 도메인에 대해 SMTP 메일을 보낼 수 없습니다.

[email protected], 이제 이전 호스팅에서 이전 SMTP 설정으로 정상적으로 작동하는 SMTP 전자 메일을 보내려고합니다.

여기 내 코드

Properties props = new Properties(); 
     props.setProperty("mail.transport.protocol", "smtp"); 
     props.setProperty("mail.host", "smtp.gmail.com"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.port", "465"); 
     props.put("mail.debug", "true"); 
     props.put("mail.smtp.socketFactory.port", "465"); 
     props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.socketFactory.fallback", "false"); 

     Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { 
      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication("[email protected]", "my-new-password-on-gmail"); 
      } 
     }); 

이며, 여기에 내가

EHLO 192.168.56.1 
250-smtp.gmail.com at your service, [xxx.xx.xxx.xx an ip address] 
250-SIZE 35882577 
250-8BITMIME 
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 
250-ENHANCEDSTATUSCODES 
250-PIPELINING 
250-CHUNKING 
250 SMTPUTF8 
DEBUG SMTP: Found extension "SIZE", arg "35882577" 
DEBUG SMTP: Found extension "8BITMIME", arg "" 
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH" 
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" 
DEBUG SMTP: Found extension "PIPELINING", arg "" 
DEBUG SMTP: Found extension "CHUNKING", arg "" 
DEBUG SMTP: Found extension "SMTPUTF8", arg "" 
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: AUTH LOGIN command trace suppressed 
DEBUG SMTP: AUTH LOGIN failed 
javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbtb 
534-5.7.14 bABxM5_Dmk2f4asdasd86czsyvAdPqDTVjasdasdR2uN3N 
534-5.7.14 bZAMByd76RlHwaGfasdasdoMS4pvXFhJOeoGhTwfRXWU2csadasd-zsuhCGiH7LUJsvrP_ 
534-5.7.14 DGJ_H79hQJlasdasdXNk0q_lRiiSGjDxsum4cZqQ6asdasdasdasdasdefI3-GjhEXGqCi5g 
534-5.7.14 fZk_9lOFdPY9asduyernmdfhdfwm-k> Please log in via your web browser and 
534-5.7.14 then try again. 
534-5.7.14 Learn more at 
534 5.7.14 https://support.google.com/mail/answer/78754 n13oiuy5458013wmd.3 - gsmtp 

    at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826) 
    at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761) 
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685) 
    at javax.mail.Service.connect(Service.java:317) 
    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 com.vdif.web.commons.SmtpMailSender.send(SmtpMailSender.java:104) 
    at com.vdif.web.commons.SmtpMailSender.send(SmtpMailSender.java:33) 
    at com.vdif.web.commons.SmtpMailSender.main(SmtpMailSender.java:116) 
+0

로그인이 거부되었습니다. APP에 대한 액세스 권한을 부여 했습니까? 오류 메시지의 링크를 따라 거기에서 권장되는 작업을 수행하십시오. https://support.google.com/mail/answer/78754 – Fildor

+0

문제를 해결할 수 없습니다. 위의 통신을 안전하게하는 방법은 무엇입니까?''C :/Program Files/Java/jdk1.8.0_60/jre/lib/security/cacerts '' –

+0

openssl s_client -connect smtp.gmail.com:465> sampe.txt 에 자바 인증서를 추가했습니다. 그리고 나서이 txt 파일에서 인증서를 분리했습니다. –

답변

0

포트 없음을 볼 수있는 오류입니다. 465는 SSL 사용 (smtps) 용입니다. 그 속성은 다음과 같습니다 :

 properties.put("mail.smtps.host", "smtp.gmail.com"); 
     properties.put("mail.smtps.port", "465"); 
     properties.put("mail.smtps.auth", "true"); 
     properties.setProperty("mail.smtp.ssl.enable", "true"); 
     properties.setProperty("mail.transport.protocol", "smtps"); 

포트 번호. 587

properties.put("mail.smtp.host", "smtp.gmail.com"); 
     properties.put("mail.smtp.port", "587"); 
     properties.setProperty("mail.smtp.starttls.enable", TRUE); 
     properties.setProperty("mail.smtp.starttls.required", TRUE); 
     properties.setProperty("mail.smtp.ssl.enable", "false"); 
     properties.setProperty("mail.transport.protocol", "smtp"); 

작동합니다.!