SMTP(전송 메일 프로토콜, Simple Mail Transfer Protocol)는 인터넷에서 이메일을 전송하기 위해 사용되는 프로토콜이다. 1982년 최초로 RFC 5321로 표준화되었으며, TCP/IP 프로토콜 스택의 응용 계층에 속한다. SMTP는 클라이언트와 서버 간에 이메일 메시지를 교환하는 규약을 정의하며, 일반적으로 포트 25를 통해 작동한다.
SMTP의 기본 기능은 발신자가 작성한 이메일 메시지를 수신자의 이메일 서버로 전송하는 것이다. 사용자가 이메일 클라이언트를 통해 편지를 작성하고 보내면, 클라이언트는 SMTP를 사용하여 서버에 연결하고 메시지를 전달한다. 서버는 이를 수신하고 지정된 수신자의 메일 서버로 전달한다. 이 과정에서 SMTP는 메시지의 형식과 전송 방식을 표준화하여 서로 다른 이메일 시스템 간의 호환성을 보장한다.
SMTP의 작동 방식은 몇 가지 주요 단계로 구성된다. 먼저, SMTP 클라이언트는 TCP 연결을 통해 SMTP 서버에 접속한다. 이후, 클라이언트는 서버에 명령어(예: HELO, MAIL FROM, RCPT TO, DATA)를 보내며, 이러한 명령어를 통해 메시지 헤더와 본문을 전송한다. 메시지 전송이 완료되면 클라이언트는 서버와의 연결을 종료한다. 서버는 수신자의 이메일 주소와 도메인에 기반하여 적절한 경로를 통해 이메일을 전달한다.
SMTP는 단순한 전송 프로토콜이기 때문에, 기본적으로 메시지의 인증이나 암호화 기능은 포함되어 있지 않다. 그러나 현대의 이메일 시스템에서는 보안을 강화하기 위해 STARTTLS와 같은 확장 기능을 사용하여 SMTP 연결을 암호화하고, SPF, DKIM, DMARC와 같은 인증 메커니즘을 통해 스팸과 피싱 공격을 방지하는 방법을 채택하고 있다.
SMTP는 기타 이메일 프로토콜인 POP3(Post Office Protocol)와 IMAP(Internet Message Access Protocol)와 함께 사용된다. POP3와 IMAP은 수신한 이메일 메시지를 클라이언트가 다운받거나 접근할 수 있도록 해주는 반면, SMTP는 이메일을 발송하는 역할을 한다. 이러한 조합을 통해 사용자는 이메일을 보내고 받을 수 있는 완전한 시스템을 갖출 수 있다.