더북(TheBook)

SMTP 명령어

SMTP 서버가 준비되었다고 가정하고 이제 SMTP 명령어에 대해 알아 보자. 이 장에서는 오라클에서 제공하는 시스템 패키지를 사용해 메일을 보내는 것이니 UTL_SMTP와 UTL_MAIL 패키지 사용법만 알면 될 것 같은데 굳이 SMTP 명령어까지 자세히 설명하는 이유는 뭘까? UTL_SMTP 패키지에 내장되어 있는 여러 함수와 프로시저가 SMTP 명령어를 그대로 구현한 것이기 때문이다. 따라서 SMTP 명령어에 대해 이해하고 있으면 UTL_SMTP 패키지도 쉽게 사용할 수 있을 것이다. 기본적인 SMTP 명령어는 다음과 같다.

표 18-1 기본 SMTP 명령어
명령어 사용 방법 설명
HELO HELO 도메인명 SMTP 서버와의 대화를 위한 초기화 기능
MAIL (FROM) MAIL FROM: <보내는 주소> 새로운 메일 트랜잭션이 시작되면서 보내는 메일 주소를 확인시킨다. 편지 봉투에 보내는 사람 주소를 쓰는 것과 같다.
RCPT(TO) RCPT TO: <받는 주소> 받는 메일 서버에 수신자의 메일 주소를 알리는 명령어로 편지 봉투에 받는 사람 주소를 쓰는 것과 같다. 받는 메일 주소가 정확하지 않으면 오류가 발생한다.
DATA DATA 클라이언트에서 서버로 메일 내용 전송 시 사용된다. 이 명령어가 성공적으로 이루어지면 서버로부터 354 응답코드가 되돌아온다.
메일 내용은 <CR><LF>로 행으로 구분되고 맨 마지막 행에 ‘.’을 전송하면 서버로의 메시지 전송이 완료된다. DATA에서 ‘.’ 사이가 메일 내용이 되는 것이다.
RSET RSET 서버 내부 상태를 리셋하고 메일 트랜잭션을 중단시킨다. 트랜잭션 초기화 시 사용한다.
NOOP NOOP 특정 역할을 하지 않고 이 명령어를 전송하면 서버로부터 250 OK 응답코드가 돌아온다. 서버와의 연결이 끊어지지 않았는지 확인할 때 주로 사용된다.
QUIT QUIT 서버로 세션 종료를 요청하는 명령어다.

기본 명령어 외에도 인증과 보안에 관련된 EHLO, AUTH, STARTTLS와 같은 추가로 확장된 명령어가 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.