티스토리 뷰
SMTP 프로토콜
Simple Mail Transfer Protocol의 약자로서 메일을 전송하는데 사용되는 프로토콜입니다. 주로 메일 서버 간에 메일을 송/수신할 때 사용합니다. 또한 사용자 PC에 설치된 메일 클라이언트 프로그램(아웃룩 등)이 SMTP 메일 서버로 메일을 전달할 때 SMTP 프로토콜을 사용하기도 합니다.
SMTP 전송과정
- SMTP 프로토콜은 TCP/IP 프로토콜을 사용하여 메일을 전송합니다. 메일을 발송하는 SMTP서버와 메일을 수신하는 SMTP서버는 주로 25번 포트를 통해 TCP/IP 연결을 맺게됩니다.
- TCP/IP 연결이 완료되면 메일을 발송하는 SMTP서버는 Outbound Queue에 쌓여있는 메일을 읽어 수신하는 SMTP서버로 전달하게 됩니다.
- 수신하는 SMTP 메일서버는 전달 받은 이메일을 Inbound Queue에 저장합니다.
- SMTP 서버의 Inbound Queue는 크기가 제한적이기 때문에, POP3나 IMAP 프로토콜을 설치하여 메일박스를 생성하고 SMTP서버의 Inbound Queue에 쌓여있는 메일을 읽어들여 메일을 보관하게 됩니다.
SMTP 인증
SMTP 프로토콜 초기에는 인증에 관한 규정이 없었습니다. 따라서 누구나 SMTP 서버에 접속하여 메일을 발송할 수 있었고 이는 심각한 스팸메일과 해킹 등의 사이버 범죄로 이어졌습니다. 이러한 문제를 해결하기 위해 SMTP-AUTH 표준이 추가되었고, 이를 통해 인증된 사용자만 SMTP 서버를 이용하도록 제한 할 수 있습니다.
SMTP 릴레이
SMTP 릴레이는 SMTP 서버가 원격지에 존재하는 다른 SMTP 서버로 메일을 전달하는 것을 말합니다. SMTP 릴레이를 활용하여 SMTP 메일서버들을 물리적으로 다양하게 구성할 수 있습니다. 예를들어 악성메일을 필터링하는 서버를 구축하고 모든 발송 메일은 해당 서버를 경유하도록 구성할 수 있습니다. 또는 여러 SMTP 메일 서버를 구축하고 SMTP릴레이를 통해 서버의 부하를 분산할 수 있습니다
암호화된 연결
SMTP 서버가 메일을 발송 할 때 TPC/IP 프로토콜을 사용합니다. 그렇기 때문에 메일이 전송되는 도중에 누구나 패킷을 감청 할 수 있다는 문제가 있습니다. 이를 막기 위해 SSL 혹은 TLS 등의 프로토콜을 적용하여 패킷을 암호화하게 됩니다.
SSL/TLS?
SSL은 Netscape 사에서 개발된 암호화 프로토콜이며 1996년 SSL3.0을 마지막으로 개발이 중단되었습니다. 이 후 보안 취약성 등이 발견되어 2015년 IETF에 의해 공식적으로 사용중단이 결정되었습니다. TLS는 SSL 3.0을 기반으로 IETF에서 개발한 암호화 프로토콜입니다.
References
'Others' 카테고리의 다른 글
[C#] Object Clone (0) | 2023.05.24 |
---|---|
[C#] CallerMemberName Attribute (0) | 2023.05.19 |
[C#] StringComparison 열거형 (0) | 2022.07.28 |
OIDC(OpenID Connect)와 OAuth 2.0 (0) | 2021.07.22 |
Token 기반 인증 vs Cookie 인증 (0) | 2021.07.22 |
서버 하드웨어 구성 (0) | 2021.07.16 |
실무에서 TDD의 장담점과 의사결정 (0) | 2021.01.07 |
[AndroidStudio] Code Folding (0) | 2020.12.16 |
- Xamarin
- Vue
- Xamarin.iOS
- VisualStudio
- TypeScript
- Xamarin.Forms
- flutter
- React
- npm
- Xamarin.Forms eBook
- MS SQL
- ASP.NET Core
- StringComparison
- material-ui
- Android
- Xamarin.Forms 요약
- .NET Standard
- c#
- ios
- WPF
- Total
- Today
- Yesterday