JavaMail 사용시 501 Syntax error 해결방법

Java/오류해결 2012. 5. 2. 15:00 Posted by 퓨어레드

모든 501 에러 처리 방법은 아니다. Exception 이 아래와 같이

 

javax.mail.MessagingException: 501 Syntax error

 

at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1363)
at com.sun.mail.smtp.SMTPTransport.helo(SMTPTransport.java:838)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:375)

 

 

떨어졌을때 해결방법

 

이 문제는 평소에 잘 되던 시스템에서 타 시스템으로 갔을 때 아주 간혹 생기는 문제 -_-;;;;;;;;; 인데;;

완전 초난감 했던 문제이다.. ㅠㅠ... 결국 외국 사이트를 뒤지고 뒤져도.. 원인을 찾을 수 없었는데 ㅠㅠ;;

그나마 검색 신공을 이용하여... SMTPTransport 에 해당 하사는 소스를 찾게 되었다..

 

문제의 부분을 보면

 

private void helo(String domain) throws MessagingException {
	if (domain != null)
		issueCommand("HELO " + domain, 250);
	else
		issueCommand("HELO", 250);
}

 

바로!! 838 라인 때문에 생기는 문제이다.. 다시 말해 SMTP 명령어를 HELO 만 쓰면 501 Syntax 에러가 발생하고

HELO HIHI 이렇게만 써줘도 에러가 안나는데.. 838번 라인을 타게 되는 이유는 domain 이 셋팅이 안되서 였다..!!! 두둥 -_-

이걸 알아내느라 안되는 영어로 외국사이트 까지 뒤진 내가 신기하다.. ㅋㅋ 암튼 해결방법은!!

 

이 문제가 발생했다면.. 가장 먼저 의심해볼것이 바로 컴퓨터 이름이 없거나.. 한글이 섞여있는지 확인한다 ㅠㅠ

 

그렇다.. ㅠㅠ 문제는 컴퓨터 이름이 한글이여서 생긴 문제인것이였다!!!!!!!!!! 두둥.. 코드엔 전혀 문제가 없었던... 것...............

완전.................... 개삽질............ -_- 암튼.. 컴퓨터 이름을 바꾸지 않아도 해결할수 있는 방법도 있다.

 

javamail 관련 property 설정시 mail.smtp.localhost 부분을 추가하는것이다.

 

Properties props = new Properties ();
props.put ("mail.smtp.host", smtpServerAddr);
props.put ("mail.smtp.localhost", smtpServerAddr);
props.put ("mail.debug", "true");
props.put ("mail.smtp.auth", "true");

session = Session.getInstance (props, null);

 

 

 

이러면 해결 된다......................................................................................................................................

사는게 다 그렇지뭐 -_- ㅠㅠ

 

'Java > 오류해결' 카테고리의 다른 글

JavaMail 로 Gmail 보내기  (0) 2016.05.03