com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send ano
내 구성:
#email
#SMTP
spring.mail.host=xxxx
#
spring.mail.username=xxxx
# , , SMTP/POP3 ,
spring.mail.password =xxxx
#
spring.mail.default-encoding=UTF-8
#SMTP
spring.mail.port=587
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback=true
spring.mail.properties.mail.smtp.starttls.enable=true
자바로 Office365를 호출하여 메일을 보낼 때 다음과 같은 오류가 발생했습니다.
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at com.paraview.mail.MailSender.sendTextMail(MailSender.java:60)
at com.paraview.mail.Test.main(Test.java:10)
메일박스 구성은 다음과 같습니다.
SMTP 설정
서버 이름: smtp.outlook.cn
포트: 587
암호화 방법: TLS
나는 Foxmail을 통해 설정한 후에 정상적으로 메일을 받을 수 있는데, 왜 코드를 통해 안 됩니까?
메일박스 설정에서 암호화 방법을 볼 수 있습니다. TLS, TLS는 SSL이 아니기 때문에 제 설정에 프로필을 추가했습니다.put("mail.smtp.starttls.enable", "true");
그리고 계속 실행했는데 오류가 달라졌어요.
이 잘못은 또 무엇입니까?TLS를 통한 연결은 안되지만 분명 TLS잖아.인터넷에는 jdk1.6이어야 한다고 하는 블로그가 있는데 jdk1.7이면 안 된다고 합니다. 왠지 모르겠지만 아예 jdk버전을 바꿨어요.
결과의 오류는 여전하구나!
이럴 때 차라리 모든 설정을 다 넣고 어떤 효과를 보고 싶어서 다음과 같은 설정을 추가했습니다.
proper.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); proper.put("mail.smtp.socketFactory.port","587"); proper.put("mail.smtp.socketFactory.fallback", "false");
이때 오류가 변경되었습니다. SMTP 호스트에 연결할 수 없습니다. smtp.partner.outlook.cn, port: 587;578 포트가 연결되지 않는 이유는 포트는 틀림없이 문제없을 것입니다. 틀림없이 설정에 문제가 있을 것입니다
그래서 나는 또 설정을 추가했다.
MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); proper.put("mail.smtp.ssl.socketFactory", sf);
잘못은 여전하구나!이때 이미 토할 힘이 없어졌다. 계속 조사해 보자. 오류 중 하나는 이것이다.
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
이게 무슨 잘못이야?
그래서 내가 또 도도맘에게 물었더니 도도맘이 이 설정을 메일이라고 했어요.smtp.socketFactory.fallback은true로 바꿔야 합니다.
그래서 나는 프로필을 바꿨다.put("mail.smtp.socketFactory.fallback", "true");
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.