AI-Tech-Interview에 Network Part에 대한 질문들 중 하나를 골라 답을 작성한 글입니다.
SMTP는 Simple Mail Transfer Protocol의 약자로 인터넷을 통해 한 이메일 계정에서 다른 이메일 계정으로 보내기 위해 사용되는 프로토콜입니다. (Gmail, Apple Mail, Outlook의 대부분 이메일 클라이언트 SMTP 사용하여 통신)
SMTP 서버가 설정되면 전자 메일 클라이언트가 해당 서버에 연결하여 통신
사용자가 이메일 메시지에서 "보내기"를 누르면 이메일 클라이언트가 서버에 대한 SMTP 연결을 열어 보냄
거기에서 SMTP 클라이언트는 명령을 사용하여 보낸 사람의 전자 메일 주소, 받는 사람의 전자 메일 주소 및 전자 메일 내용과 같은 데이터를 전송하고 수행할 작업을 서버에 지시
메일 전송 에이전트 또는 메시지 전송 에이전트(MTA)는 두 이메일 주소가 gmail.com과 같은 동일한 이메일 도메인에서 온 것인지 확인
(출처: https://postmarkapp.com/guides/everything-you-need-to-know-about-smtp)
SMTP 명령어 예시
HELO - 클라이언트가 HELO 명령어 전송하여 SMTP를 식별하고 대화 시작
MAIL FROM: 보낸이 메일주소 지정. 새 메일 트랜잭션이 시작되고 있는다는 것을 SMTP서버에 알리고 서버가 모든상태 테이블과 버퍼 등을 재설정하도록 한다.
RCPT TO: 받는이 메일주소 지정. 주어진 전자메일 메세지에 대해 여러번 반복하여 메세지 전달 가능.
DATA: 메세지 본문내용의 전송 시작.
RSET: RSET명령이 전자메일 서버로 보내지면 현재메일 트랜잭션이 중단된다. 연결은 닫히지 않지만 보낸이,받는이 및 전자메일 데이터에 대한 모든정보가 초기화 되고 버퍼/상태 테이블이 삭제된다.
VRFY: 서버에 지정된 사용자 이름이나 사서함이 유효한지 확인하도록 요청한다.
NOOP: 서버가 연결되어 있고 클라이언트와 통신할 수 있는지 확인한다. NOOP명령은 수신자가 OK응답을 보내도록 하는 것 외에는 수행하지 않음.
QUIT: 연결 종료.
SMTP 통신의 예
클라이언트에서 호스트인 www.example.com으로 SMTP 연결이 시작될 수 있다.
S: 220 smtp.example.com ESMTP Postfix C: HELO relay.example.com S: 250 smtp.example.com, I am glad to meet you C: MAIL FROM:<bob@example.com> S: 250 Ok C: RCPT TO:<alice@example.com> S: 250 Ok C: RCPT TO:<theboss@example.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: From: "Bob Example" <bob@example.com> C: To: Alice Example <alice@example.com> C: Cc: theboss@example.com C: Date: Tue, 15 January 2008 16:02:43 -0500 C: Subject: Test message C: C: Hello Alice. C: This is a test message with 5 header fields and 4 lines in the message body. C: Your friend, C: Bob C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye {The server closes the connection}
SMTP와 다른 email Protocol들 과의 차이
SMTP는 많은 email protocol 중에 하나로 다른 것의 예씨로는 POP3와 IMAP이 있다.
가장 주된 차이는 SMTP는 메일 서버로 부터 다른 곳으로 이메일을 sending or pushing하는 유일한 protocol이다. POP3와 IMAP은 자신의 이메일 서버로부터 수신자의 메일을 수신하거나 pulling 하는 protocol이다. 따라서 POP3 및 IMAP은 메일 전송을 확인만 하는것.
POP: Post Office Protocol의 약자로 들어오는 메시지를 수신하는 데 사용됩니다. 가장 최신 버전은 POP3 이며 1988년에 마지막으로 업데이트되었습니다. POP3는 이메일을 수신하고 고객이 받을 때까지 보관합니다. 모든 이메일은 로컬에 다운로드 및 저장되므로 한 대의 컴퓨터만 사용하여 이메일을 확인하는 사람에게 편리한 솔루션입니다
IMAP
IMAP은 이메일 서버에 메시지를 저장하지만 사용자가 이 서버에 액세스하여 이메일을 확인하고 구성할 수 있습니다. 이것과 POP의 차이점은 IMAP이 클라우드 서버를 사용하므로 모든 장치에서 이메일을 인증하고 분류할 수 있다는 것입니다. 많은 이메일 사용자는 편의성과 효율성 때문에 POP보다 IMAP을 선호