E-Mail Protocol
1. SMTP
이메일 전송을 위한 프로토콜. E-Mail 발송, 수신, 전달을 관리하며 사용자의 클라이언트(Mail 프로그램)와 Mail 서버간의 통신을담당한다. 명령어와 응답이 텍스트 형태로 이루어진 프로토콜이다.
- 장점 : 간편한 설정, 광범위한 지원(다양한 플랫폼에서 송수신 가능), 오픈소스, SSL/TLS 보안으로 데이터 보호 강화 가능 확장성.
- 단점 : 암호화되지 않아 스팸/피싱에 취약. 수신자가 존재하지 않을 경우 처리의 복잡도 증가. 이메일 전송 후 상태 확인 불가.
- SMTP Port : 25 / SSL/TLS 보안 포트 : 587
2. POP3
서버에서 클라이언트로 이메일을 다운로드 하는 이메일 수신용 프로토콜
- 장점 : 오프라인 접근 가능, 저장공간을 효율적으로 관리(이메일 다운로드시 삭제)
- 단점 : 동기화 문제 발생(여러 장치에서 하나의 이메일로 접근 불가) --> 서버 복사 후 남기기 옵션으로 완화 가능.
- Port : 110
3. IMAP
이메일을 다운로드 하는 대신 이메일 서버와 클라이언트 간의 중개 역할. 사용자가 모든 장치에서 접근 가능하도록 함.
- 장점 : 여러 장치에서의 메일 동기화, 부분 다운로드 기능(헤더/body), 관리기능(메일 삭제 및 파일 생성), 검색 가능, 서버에 메일이 남아있음.
- 단점 : 서버 의존성이 큼. 오프라인 상태시 엑세스 불가. 서버 이슈 대처 힘듦.
- Port : 143
4. Exchange(MAPI)
마이크로소프트 아웃룩 전자 메일 클라이언트가 전자 메일, 공유 주소록, 달력 및 공용 폴더 등을 포함하여 Exchange 서버의 모든 기능을 사용 가능하도록 하는 마이크로소프트 독점 프로토콜
IMAP와 POP3
IMAP | POP3 |
모든 장치에서의 접근 가능 | 다운로드 된 장치에서만 접근 가능 |
서버에 이메일이 저장되어 중개 | 다운로드시 서버에서 삭제 |
오프라인 접근 불가 | 다운로드 한 장치의 경우 오프라인 접근 가능 |
헤더의 경우는 바로 다운로드 되나 본문의 경우 사용자가 접근하기 전까지 다운되지 않음 | 메일 저장시 한번에 전부 다운로드됨 |
자동으로 서버에서 삭제되지 않아 많은 서버공간이 필요 | 서버에서 자동으로 삭제되어 서버 저장공간 절약 |
MTA(Mail Transefer Agent)
1. Postfix :
- SMTP를 이용하여 이메일의 발송 및 라우팅 역할을 수행하는 에이전트(프로그램).
- 이메일 전송을 위해 큐에 저장
--> 대량의 이메일 처리가 효율적, 다중 스레드로 동시 연결 가능
--> 큐가 이메일 발송의 순서/속도 조절 - 로깅 및 모니터링:
/var/log/maillog에 이메일 전송상태에 대한 로그를 기록
이메일 전송 상태에 대한 로그를 기록하기에 실시간으로 로그를 모니터링 할 수 있음.
2. Sandmail
- 이메일을 전송
- 호환성이 높고 안전했으면서 간단한 구조를 가진다.
- 현제는 보안성이 떨어진다.
3. Dovecot
- POP3 및 IMAP 두 프로토콜을 이용하여 클라이언트와 메일 서버간의 통신을 처리
- 필요에 따라 POP3/IMAP를 선택하여 E-Mail에 접근가능.
- 다양한 메일 저장소 형식(Maildir, mbox)를 지원하여 원하는 방식으로 저장 가능
- 비동기 처리를 지원하여 입출력 작업을 기다릴 필요 없음.
- 여러 프로세스간의 통신을 최적화하는 IPC와 스레드 기반 아키텍처를 통해 대량의 동시 연결을 효율적으로 처리 가능
--> 대규모 이메일 서버에 적합 - 상호 운용성 문제
- 저장소 형식이나 설정이 다른 메일서버와 지원되지 않거나 서버간 규칙 설정이 다를 경우 호환성 문제 발생.
Operation
SMTP
--> Postfix / Sandmail / Qmail :
- 송신(MTA)
- 전달(MDA)
POP3/IMAP
--> Dovecot
- 수신(MRA)
Postfix는 접근해서 글을 작성 할 수 있는 설정, Dovecot은 접근할수 있도록 권한 제어를 하는 설정이 필요.
로그인과 같은 인증과정 없이 글을 작성 할 수 있어야하므로 권한제어가 어려움 --> 설정이 복잡하다.
DNS의 경우 Mail서버에 대하여 MX Record를 통해 송신시 수신자 계정의 도메인으로 요청을 보내게 됨.
또한 수신 측 서버에서는 수신자에 대한 계정이 존재하는지 확인하는 인증과정이 필요함.
수신자가 없는데 수신을 할수는 없기 때문.
메일함 디렉터리 ~/Malidir 아래 new, cur, tmp 파일이 존재
new : 새로운 메일
cur : 확인한 메일
tmp : 작성중인 메일
'네트워크 및 서버 > 서버' 카테고리의 다른 글
Roundcube (0) | 2024.10.16 |
---|---|
메일 서버 구축(Postfix/Dovecot) (0) | 2024.10.16 |
Docker / Docker 설치 (0) | 2024.10.04 |
nginx (0) | 2024.09.26 |
Wordpress 설치 (1) | 2024.09.25 |