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