SMTP 연동 실패 해결방법

2026. 6. 29. 13:32백엔드/리눅스

문제

Gmail의 Send mail as / 다른 주소에서 메일 보내기 기능을 활용하여
xxx@xxx.co.kr을 발신 주소로 추가하려고 하는데 SMTP 연결 수립 실패

 

해석

Gmail 이 SMTP 서버에 로그인하여 메일을 보낼 수 있는가?

 

Gmail SMTP 설정 시도 옵션 (3가지) : Error Message

1. mail.xxx.co.kr / 465 / SSL
→ Couldn`t connect to the server

2. mail.xxx.co.kr / 587 / TLS
→ STARTTLS not supported

3. mail.xxx.co.kr / 25 / TLS
→ connection established but transaction timeout, state SENT_EHLO

 

확인해야 하는 것

  • SMTP 서비스가 열려있는지
  • SMTP AUTH 가능한지
  • Submission 서비스가 있는지

 

 


확인 단계

 

다음 명령을 실행.

netstat -tlnp | egrep ':25|:465|:587'

postconf | grep smtpd_sasl_auth_enable

 

메일 서버 프로그램(Mail Server Software) 으로 XMail 을 쓰고 있음을 확인

(사이트에 따라 대표적으로 XMail, SendMail, Postfix, Exim 등도 사용)

 

Gmail 외부 SMTP 연동 테스트 결과 SMTP 서비스 포트 및 보안 방식 설정을 확인해야 하는 상황

 

  • mail.xxx.co.kr:465 / SSL
    • Gmail에서 서버 연결 자체가 되지 않는 상태
    • 465 SMTPS 포트가 서버에서 열려 있지 않거나, 방화벽 또는 메일 서비스 설정상 외부 접속이 제한되어 있을 가능성
  • mail.xxx.co.kr:587 / TLS
    • Gmail에서 STARTTLS 미지원
    • 587 Submission 포트가 정상적으로 STARTTLS를 제공하지 않거나, 해당 포트가 SMTP Submission 용도로 구성되어 있지 않을 가능성이 있습니다.
  • mail.xxx.co.kr:25 / TLS
    • TCP 연결은 되었으나 EHLO 이후 SMTP 세션이 정상 진행되지 않고 타임아웃된 상태로 보입니다.
    • 25번 포트는 일반적으로 서버 간 메일 송수신용으로 사용되며, Gmail의 “다른 주소에서 메일 보내기”와 같은 외부 SMTP AUTH 발송 용도에는 적합하지 않을 수 있습니다.

 


 

 

아래 항목을 서버 측에서 확인

  • xxx.co.kr 메일 계정이 Gmail 외부 SMTP 연동을 지원하는 서비스 구성인지
  • xxx@xxx.co.kr 계정의 SMTP AUTH 사용 가능 여부
  • Gmail에서 사용 가능한 정확한 SMTP 서버명, 포트, 보안 방식
  • 465 SSL 또는 587 STARTTLS 서비스 제공 여부
  • SMTP 로그인 ID가 전체 이메일 주소 형식인지 여부
    • XMail 인증ID 질문이다. ( XMail 설정 확인 필요)
  • 외부망에서 465/587 포트 접근이 제한되어 있는지 여부

 

이후 Gmail에 입력 가능한 정확한 설정값 확인하여 진행

 

 


확인된 사항

SMTP 서버 : XMail

열린 포트 : 25, 587

 

 

XMail 은?
나 : xxx@xxx.com

 

발신
xxx@xxx.com user@gmail.com 메일 송부시
웹메일   XMail gmail.com MX 레코드 조회   Google 메일 서버   상대 받은 편지함

수신
aa@naver.com   xxx.xxx.com 메일 송부시
Naver 메일 서버   XMail   메일 저장   웹메일에서 조회

XMail 역할
메일 발송
메일 수신
SMTP
POP3
IMAP
사용자 인증
등을 처리하는 엔진


사용자 입장에서의 XMail
사용자   웹브라우저   웹메일(화면)   XMail

 


추가 설명

SMTP는 연결되면 먼저 서버가 Hello 를 보냄.
220 mail.xxx.co.kr

클라이언트(Gmail)가 Reply 를 하는데
EHLO gmail.com

그러면 서버는 자신이 지원하는 기능 목록을 아래와 같이 응답한다.

250-STARTTLS
250 AUTH LOGIN
250 SIZE

 

587은 Submission 포트 로써, GMail 은 250-STARTTLS 가 반드시 있기를 기대헀으나

XMail 은 STARTTLS 없음 으로 응답한 것이다.

  STARTTLS not supported 응답을 사용자가 보게 된 것.

 


그럼 여기서 openssl이 왜 실패했는가?

openssl s_client -starttls smtp -connect localhost:587

내부적으로 

EHLO   STARTTLS    SSL Handshake 순서로 진행하나


STARTTLS가 없으니 SSL Handshake를 시작할 수 없음.

  SSL handshake failure

 

 


SMTP AUTH 확인 : AUTH LOGIN 을 지원하는지

SMTP 대화를 직접 해보면 된다.

telnet localhost 587

 

결과:

250-wm4-157.speedhosting.co.kr         # 서버 이름
250-VRFY     # 메일 계정 존재 여부 확인 명령 지원.
250-ETRN   # 메일 큐 재전송 기능.
250-8BITMIME   # 한글 같은 8비트 문자 전송 지원.
250-PIPELINING   # SMTP 명령을 여러 개 한 번에 보내 성능을 높이는 기능.
250-AUTH LOGIN PLAIN CRAM-MD5    # 이게 가장 중요. 'SMTP AUTH를 지원한다'

 

  • LOGIN
  • PLAIN
  • CRAM-MD5

 

방식으로 인증할 수 있다는 뜻.

ceo 계정의 외부 SMTP 사용이 활성화되어 있는지? 

    "SMTP AUTH 기능 자체는 서버에서 지원한다"는 것을 확인

 

그런데? 이건 있는데 250-STARTTLS 가 실패했다?

고객이 TLS 를 선택하면, Gmail 은 STARTTLS 를 시도하였으나
서버가 250-STARTTLS 를 광고하지 않았다는 뜻. (이것이 원인)

 


보통 Submission 포트(587)는 STARTTLS와 함께 사용하는 것이 일반적인데,

왜 587을 열어놓고 STARTTLS를 안 쓰는가?

XMail 운영 시

 

  • 내부 네트워크 전용
  • SSL/TLS 미사용
  • 별도 웹메일 인증 구조

 

등으로 운영하는 것일 수 있다.

 

정리

SMTP AUTH는 켜져 있는데 STARTTLS가 없어 Gmail과 호환되지 않는 상태.

    지원하지 않는 기능인지, 아니면 설정 문제인지 에 따라 조치사항이 달라진다.