RFC821 - SMTP 표준 문서를 보니까 일반적으로 아래의 절차를 거치더군요
SMTP 서버에 접속
<-- 환영메세지가 옵니다.
--> HELO username
<-- 응답
--> VRFY username
<-- 응답
-->MAIL FROM: <보내는 사람 Email>
<-- 응답
-->RCPT TO: <받는 사람 Email>
<-- 응답
--> DATA
<-- 내용을 입력하라는 응답이 옵니다.
여기서부터 세부적인 메세지를 작성합니다.
Subject: 제목을 입력
내용을 입력
<CRLF>.<CRLF>를 입력
<-- 메일을 전송했다는 응답이 옵니다.
그런데 궁금한 것은 VRFY 하는 과정에서 되는 메일 서버가 있고
안되는 메일 서버가 있어서 왜 그런지 몰겠어요.
처음에는 IdSMTP를 사용하다가 좀 세세한 정보가 필요해서
그냥 소켓으로 데이터쓰고 결과 받고 이런 식으로 작업을 하고 있습니다.
SMTP Authentication하는 원리와 순서를 아시는 분은 답좀 바랍니다.
예 1) 메일 서버와 통신한 내용입니다. - 정상적인 경우
220 erumtec.com ESMTP Sendmail 8.11.4/8.11.4; Fri, 20 Jun 2003 17:47:50 +0900
--> RSET
<-- 250 2.0.0 Reset state
--> HELO cwyoo
<-- 250 erumtec.com Hello www.erumtec.co.kr [220.72.160.206], pleased to meet you
--> VRFY cwyoo <===== 이놈은 정상적으로 되요.
<-- 250 2.1.5 ChangWon <cwyoo@erumtec.com>
--> MAIL FROM:<pascal@xxx.com>
<-- 250 2.1.0 <pascal@xxx.com>... Sender ok
--> RCPT TO:<cwyoo@erumtec.com>
<-- 250 2.1.5 <cwyoo@erumtec.com>... Recipient ok
--> DATA
<-- 354 Please start mail input.
<-- 250 Mail queued for delivery.
--> QUIT
에 2) 비정상적인 경우 - VRFY부분이 인증이 왜 안될까요?
220 safechemicals.net ESMTP Sendmail 8.11.6/8.11.6; Fri, 20 Jun 2003 17:35:36 +0900
--> RSET
<-- 250 2.0.0 Reset state
--> HELO cwyoo
<-- 250 safechemicals.net Hello [220.72.160.206], pleased to meet you
--> VRFY cwyoo <==== 이놈은 에러가 나네요
<-- 252 2.5.2 Cannot VRFY user; try RCPT to attempt delivery (or try finger)
--> MAIL FROM:<pascal@xxx.com>
<-- 250 2.1.0 <pascal@xxx.com>... Sender ok
--> RCPT TO:<cwyoo@erumtec.com>
<-- 550 5.7.1 <cwyoo@erumtec.com>... Relaying denied. IP name lookup failed [220.72.160.206]
Rcpt to를 먹여서 넘어오는 내용을 참고하세요