프로젝트 기간중 자체 SMTP를 사용하지 않고 gmail smtp를 이용한 메일발송요청을 받았습니다.

구글링하면 워낙에 많이 나오는 자료라서 흔쾌히 수용했고 로컬에서 쉽게 테스트 완료했습니다.


하지만 서버로 올리고부터 또하나의 삽질은 시작...


정상적인 경우에는 아래와 같은 로그가 찍힙니다.


220 smtp.gmail.com ESMTP 3sm48066013pfo.31 - gsmtp

DEBUG SMTP: connected to host "smtp.gmail.com", port: 465

 

EHLO my-PC-name

250-smtp.gmail.com at your service, [xxx.xxx.xxx.xxx]

250-SIZE 35882577

250-8BITMIME

250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-CHUNKING

250 SMTPUTF8



하지만 서로에서의 로그는 아래와 같이 나면서 오류 ㅠ.ㅠ;;


EHLO

501-5.5.4 Empty HELO/EHLO argument not allowed, closing connection.

501 5.5.4  https://support.google.com/mail/?p=helo sv8sm48122510pab.18 - gsmtp

HELO

DEBUG SMTP: EOF: [EOF]

error to send Email....

javax.mail.MessagingException: [EOF]

        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)

...


몇몇 구글링을 해봐도 당췌 알수 없다가... smtp 와 hostname 과의 관계를 구글링하고서야 찾아냈습니다.

꼭 gmail을 이용한 smtp발송에 국한된 것도 아닌, 대부분의 smtp 발송과 관련된 것.


결론은 /etc/hosts 파일을 확인하라는 것입니다.

일부 SE 분들은 hostname 변경시 한두군데만 수정하고 hosts파일을 수정하지 않는 경우가 있습니다.


제 블로그 http://gubok.tistory.com/304 에 보면 hostname 변경시 주의사항이란 글에도 나와있듯이 일부 프로그램에서 hostname을 조회할때 /etc/hosts 파일을 참조하는 경우가 많다고 합니다.


결론 : hostname 이 제대로 다 변경되지 않아서 발생하는 오류라는 것