몇 년 전만 해도 Linux 환경에서 사용할 수 있는 유일한 무료 이메일 서버 소프트웨어는 Sendmail이었습니다. 그러나 Sendmail의 단점으로 인해 일부 개발자는 여러 가지 다른 이메일 서버 소프트웨어를 개발했습니다. 현재 Linux 환경에서 실행되는 무료 메일 서버 또는 MTA(Mail Transfer Agent)에는 Sendmail, Qmail, Postfix, exim, Zmailer 등이 있습니다. 이 기사에서는 Linux 환경에서 상대적으로 큰 영향을 미치는 여러 주류 MTA의 특성을 자세히 설명하고 각각의 장점과 단점을 하나씩 분석 및 비교하여 사용자가 Linux에서 무료 MTA를 선택할 때 선택할 수 있도록 하고자 합니다. 환경에 따라.
접미사
Postfix는 IBM이 자금을 지원하고 Wietse Venema가 개발한 무료 소프트웨어 프로젝트의 제품입니다. 그 목적은 사용자에게 sendmail 이외의 메일 서버 선택권을 제공하는 것입니다. Postfix는 빠르고, 관리하기 쉽고, 최대한의 보안을 제공하는 동시에 사용자의 사용 습관에 맞게 sendmail 메일 서버와의 호환성을 유지하려고 노력합니다. 처음에 Postfix는 VMailer라는 이름으로 출시되었지만 나중에 상표권 문제로 인해 Postfix로 이름이 변경되었습니다.
주요 디자인 목표
Postfix 프로젝트의 목표는 사용자에게 sendmail의 대안을 제공하는 메일 서버를 구현하는 것입니다. 설계 목표는 다음과 같습니다.
성능 면에서 Postfix는 유사한 서버 제품보다 3배 이상 빠릅니다. Postfix가 설치된 데스크톱 컴퓨터는 하루에 수백만 통의 편지를 주고받을 수 있습니다. Postfix 디자인은 웹 서버 디자인 기술을 사용하여 프로세스 생성 오버헤드를 줄이고, 기타 파일 액세스 최적화 기술을 사용하여 소프트웨어 안정성을 보장하면서 효율성을 향상시킵니다.
호환성. Postfix는 쉽게 이식할 수 있도록 Sendmail 호환성을 염두에 두고 설계되었습니다. Postfix는 /var[/spool] /mail, /etc/aliases, NIS 및 ~/.forward 파일을 지원합니다. 그러나 관리의 단순성을 보장하기 위해 Postfix는 구성 파일 sendmail.cf를 지원하지 않습니다.
보안과 견고성. Postfix는 과도한 부하 상황에서도 프로그램의 신뢰성을 보장하도록 설계되었습니다. 로컬 파일 시스템에 여유 공간이 없거나 사용 가능한 메모리가 없으면 Postfix는 상황을 악화시키기 위해 재시도하는 대신 자동으로 포기합니다.
유연성. Postfix는 구조적으로 10개 이상의 작은 하위 모듈로 구성됩니다. 각 하위 모듈은 SMTP 프로토콜을 통해 메시지 수신, 메시지 보내기, 로컬로 메시지 전달, 주소 다시 쓰기 등과 같은 특정 작업을 완료합니다. 특정 요구 사항이 발생할 경우 전체 프로그램을 업데이트하지 않고도 새 버전의 모듈을 사용하여 이전 모듈을 교체할 수 있습니다. 기능을 끄는 것도 쉽습니다.
보안. Postfix는 공격자로부터 로컬 시스템을 보호하기 위해 여러 계층의 방어를 사용합니다. 거의 모든 Postfix 데몬은 고정된 낮은 권한의 chroot에서 실행될 수 있습니다. 네트워크와 보안에 민감한 로컬 전달 프로그램 사이에는 직접적인 경로가 없습니다. 공격자는 먼저 공격을 중단해야 합니다. 로컬 시스템에 액세스하기 전에 다른 여러 프로그램을 통해 Postfix는 스푸핑을 방지하기 위해 자체 큐 파일이나 IPC 메시지의 내용을 절대적으로 신뢰하지도 않습니다. Postfix는 보낸 사람이 제공한 메시지를 출력하기 전에 메시지를 필터링합니다. 그리고 Postfix 프로그램에는 set-uid가 없습니다.
Postfix의 일부 기능
다중 전송 도메인 지원: sendmai는 인터넷, DECnet, X.400 및 UUCP 간의 메시지 전달을 지원합니다. Postfix는 유연하게 설계되었으며 이러한 종류의 전달을 달성하기 위해 가상 도메인(비주얼 도메인)이나 별칭이 필요하지 않습니다. 하지만 초기 릴리스에서는 STMP와 UUCP에 대한 제한된 지원만 지원되었으나 중국 사용자에게는 다중 전송 도메인 지원이 의미가 없습니다.
가상 도메인: 대부분의 경우 가상 도메인에 대한 지원을 추가하려면 Postfix 조회 테이블을 변경하면 됩니다. 다른 메일 서버에서는 이러한 효과를 얻으려면 여러 수준의 별칭 지정 또는 리디렉션이 필요한 경우가 많습니다.
UCE 제어(UCE, 원치 않는 상업용 이메일): Postfix는 자체적으로 이메일을 전달할 수 있는 호스트를 제한할 수 있으며 액세스가 허용되는 이메일 제한을 지원합니다. Postfix는 블랙리스트, RBL 조회, HELO/발신자 DNS 확인 등 일반적인 제어 기능을 구현합니다. 콘텐츠 기반 필터링은 현재 구현되지 않습니다.
테이블 보기: Postfix는 주소 다시 쓰기 언어를 구현하지 않지만 확장 테이블 보기를 사용하여 주소 다시 쓰기 기능을 구현합니다. 테이블은 로컬 dbm 또는 db 파일 형식일 수 있습니다. [컷 페이지]
Postfix 아키텍처 및 Sendmail과의 비교
Postfix는 반상주적이고 상호 운용 가능한 프로세스를 기반으로 하는 아키텍처입니다. 각 프로세스는 특정 프로세스 파생 관계(부모-자식 관계) 없이 특정 작업을 완료합니다. 더욱이, 다양한 기능을 완성하기 위한 독립적인 프로세스는 "모놀리식" 프로그램보다 더 나은 격리성을 갖습니다. 또한 이 구현 방법은 프로세스 생성에 따른 오버헤드 없이 모든 Postfix 구성요소에서 주소 재작성 등의 각 서비스를 사용할 수 있지만 주소만 재작성하면 된다는 장점이 있습니다. 이 방법을 채택합니다.
Postfix는 다음과 같은 방식으로 구현됩니다. 상주 마스터 서버는 명령에 따라 Postfix 데몬을 실행하고 데몬은 네트워크 메일 메시지 보내기 또는 받기, 로컬로 메일 전달 등과 같은 기능을 완료합니다. 데몬 프로세스의 수는 구성 매개변수에 의해 결정되며 데몬 프로세스가 실행되는 횟수(재사용 횟수)는 구성 매개변수에 지정된 유휴 시간에 도달하면 자동으로 종료됩니다. . 이 방법은 프로세스 생성 오버헤드를 크게 줄이면서 개별 프로세스 간의 격리를 여전히 잘 유지합니다.
Postfix의 설계 목표는 Sendmail을 대체하는 것입니다. 이러한 이유로 로컬 전달 프로그램과 같은 Postfix 시스템의 많은 부분은 inetd와 같은 구성 파일을 편집하고 수정하여 쉽게 대체할 수 있습니다.
Postfix의 핵심은 10개 이상의 준상주 프로그램으로 구현됩니다. 기밀 유지를 위해 이러한 Postfix 프로세스는 Unix 소켓 또는 보호된 디렉터리 아래의 FIFO를 통해 서로 통신합니다. 이 방법을 사용하면 기밀성이 보장되지만 Postfix 프로세스는 이러한 방식으로 수신하는 데이터를 맹목적으로 신뢰하지 않습니다.
Postfix 프로세스 간에 전송되는 데이터 양에는 제한이 있습니다. 많은 경우 Postfix 프로세스 간에 교환되는 유일한 데이터 정보는 대기열 파일 이름과 수신자 목록 또는 일부 상태 정보입니다. 메일 메시지가 파일에 저장되면 메일 배달 프로그램에서 읽을 때까지 그대로 유지됩니다.
Postfix는 정보 손실을 방지하기 위해 몇 가지 일반적인 방법을 사용합니다. 즉, 승인을 받기 전에 플러시 및 fsync()를 호출하여 모든 데이터를 디스크에 저장합니다. 오류 조건을 방지하려면 모든 시스템 호출의 반환 결과를 확인하세요.
메일 서버를 구축하는 대부분의 사람들은 sendmail을 선택할 것입니다. 공평하게 말하자면, sendmail은 훌륭한 MTA(Mail Transfer Agent)입니다. 처음 개발되었을 때 Eric Allman은 주로 메일 전달의 성공을 고려했습니다. 안타깝게도 Sendmai는 인터넷 환경에서 발생할 수 있는 보안 문제를 크게 고려하지 않고 개발되었습니다. Sendmail은 대부분의 시스템에서 루트 사용자로만 실행될 수 있습니다. 이는 모든 취약점이 매우 심각한 결과를 초래할 수 있다는 것을 의미합니다. 이러한 문제 외에도 Sendmail은 높은 부하에서 제대로 작동하지 않습니다.
안전
Postfix는 루트로 실행될 필요가 없지만 액세스, 발신 및 로컬 메일 전달을 처리하는 프로세스를 생성하는 마스터 프로그램만 루트로 실행하면 됩니다. 일련의 모듈식 구성 요소를 사용하면 각 작업이 별도의 프로그램으로 실행됩니다(감사가 더 쉬워짐). 예를 들어, 나가는 이메일은 대기열 디렉터리로 언로드됩니다. 여기서 "pcikup" 프로그램은 이메일을 가져와서 "cleanup" 프로그램으로 전달합니다. 그런 다음 이 프로그램은 이메일을 처리를 담당하는 "trivial-rewrite"로 전달합니다. 마지막으로, 메일의 목적은 다른 시스템이 메일을 "smtp" 프로그램으로 전달하는 것입니다. 그리고 Sendmail에 비해 Postfix는 chroot 환경을 설정하는 것도 더 쉽습니다. 이는 간단히 master.cf 파일(보통 /etc/postfix에 있음)을 편집하여 수행할 수 있으며 Postfix는 정의된 대기열 디렉터리(보통 /var/spool/postfix에 있음)로 루트가 지정됩니다. 또한 프로세스 제한을 설정할 수도 있습니다. master.cf에 있는 단일 Postfix 모듈의 경우. 사용자는 Postfix가 실행되는 사용자를 제한할 수 있습니다. 일반적으로 Postfix는 "postfix" 사용자로 실행됩니다(개념적으로 이 사용자는 Apache의 none과 유사합니다). Postfix의 또 다른 주요 장점은 구성 파일의 명확성과 이해 용이성입니다.
Sendmail과의 비교 Sendmail과 같은 메일 시스템은 단일 블록 구조에 따라 설계 및 구현되었습니다. 이 "단일 블록" 프로그램은 모든 기능을 구현합니다. 물론 이 구조는 시스템의 여러 부분 간에 데이터 공유를 용이하게 합니다. 하지만 이 구조는 치명적인 오류가 발생하기 쉽습니다. 큐메일과 같은 메일 시스템은 계층 구조를 사용하여 다양한 기능을 가진 하위 모듈 프로세스를 고정된 순서로 실행하고 실행 후 해제합니다. 이 방법은 "절연" 특성이 좋지만 프로세스 생성 오버헤드와 프로세스 간 통신 오버헤드가 증가합니다. 그러나 서브모듈 프로세스의 실행 순서를 합리적으로 계획하면 오버헤드를 허용 가능한 범위 내로 유지할 수 있습니다.
Sendmail을 대체하기 위해 다른 MTA를 사용하는 것은 매우 번거롭고 사용자는 새로운 MTA의 구성 및 사용에 익숙해지기 위해 많은 시간을 소비해야 하는 경우가 많습니다. Postfix를 사용하면 기존의 많은 구성 파일을 활용할 수 있습니다. (access, aliases, virtusertable 등)과 같은 항목은 master.cf에서 간단히 정의하면 됩니다. 또한 Postfix는 Sendmail과 매우 유사하게 작동합니다. 사용자는 sendmail 명령을 사용하여 Postfix를 시작할 수 있습니다.
물론, 한 소프트웨어를 사용하여 다른 소프트웨어를 대체하려면 특정 문제를 해결해야 합니다. 부분적으로 Postfix의 보안 기능으로 인해 Postfix를 구성할 때 몇 가지 문제가 발생할 수 있습니다. 가장 일반적인 문제는 루트 사용자에게 메일을 보내는 것입니다. Postfix는 일반적으로 메일을 전달하기 위해 자체 권한(루트 사용자에게 메일을 보내는 데 필요함)을 늘리지 않습니다. 사용자는 별칭 파일에서 루트에 대한 별칭을 정의해야 합니다(예: root: someuser). 이는 여러 메일링 리스트 모듈, 특히 SmartList에도 영향을 미칩니다. 일반적으로 Majordomo를 사용하여 구성하기 쉬운 메일링 목록을 구현하는 것이 가장 좋습니다.
Sendmail의 가장 두드러진 문제는 확장성과 성능 문제입니다. 예를 들어, 사용자가 구성 파일을 자동으로 업데이트하기 위해 매일 Sendmail을 다시 시작하려는 경우(예: 가상 호스트에 대한 메일 리디렉션) 문제가 발생합니다. Sendmail은 이메일 보내기 및 받기를 처리하기 위한 새로운 프로세스를 생성합니다. 이러한 프로세스는 전송이 완료될 때까지 존재하며, 이러한 방식으로 Sendmail이 종료될 수 없습니다. Postfix의 경우 사용자는 postfix reload 명령만 실행하면 되며 Postfix는 구성 파일을 다시 로드합니다.
또한 수만 명의 사용자가 있는 메일 서버의 경우 파일을 사용하여 사용자가 보낸 일치하는 이메일 주소를 저장합니다(예를 들어 bob이 보낸 편지의 보낸 사람은 [email protected]로 변경됩니다). 사용자 수가 많은 경우 파일 크기가 매우 커져 시스템의 운영 효율성에 영향을 미칩니다. Postfix는 데이터베이스 백엔드(현재는 MySQL만 지원)와 통합되어 구성 정보를 저장할 수 있습니다. 데이터베이스 방식은 파일 방식보다 확장성이 훨씬 강력합니다.
IBM의 오픈 소스 저작권 라이센스에 따라 사용자는 소프트웨어를 자유롭게 배포하고 2차 개발을 수행할 수 있습니다. 유일한 제한사항은 Postfix에 대한 변경사항을 IBM에 반환해야 한다는 것입니다. IBM이 Wietse 개발에 자금을 지원했기 때문입니다.
Qmail과의 비교
Qmail의 단점은 구성 방법이 Sendmail과 일치하지 않고 유지 관리가 쉽지 않다는 것입니다. 더욱이 Qmail의 저작권 라이센스는 매우 모호하며 소프트웨어와 함께 공개되지도 않습니다. 응용 프로그램 작성자의 참고 사항: Qmail의 수정된 버전을 배포하려면 내 허가를 받아야 합니다.
Qmail 큐메일은 Dan Bernstein이 개발한 무료로 다운로드 가능한 MTA입니다. 첫 번째 베타 버전 0.70.7은 1996년 1월 24일에 출시되었습니다. 버전 1.0은 1997년 2월에 출시되었습니다. 현재 버전은 1.03입니다. [컷 페이지]
큐메일의 특징
보안 Qmail의 보안을 확인하기 위해 Qmail 지지자들은 Qmail의 보안 취약점을 찾는 데 1,000달러의 현상금을 제안하기도 했습니다. 1년 후 현상금은 청구되지 않았으며 자유 소프트웨어 재단에 기부되었습니다. 현재 Qmail 작성자도 Qmail의 보안 취약점을 찾기 위해 500달러를 투자했습니다.
속도: Qmail은 중간 규모 시스템에서 약 백만 개의 이메일을 전달할 수 있으며 486에서는 하루에 100,000개 이상의 이메일을 처리할 수 있으며 병렬 전달을 지원합니다. Qmail은 이메일 병렬 전달을 지원하며 동시에 약 20개의 이메일을 전달할 수 있습니다. 현재 이메일 전달의 병목 현상은 SMTP 프로토콜에 있습니다. STMP를 통해 이메일을 다른 인터넷 호스트로 전달하는 데 10초 이상이 걸립니다. Qmail의 작성자는 메일 전달 속도를 높이기 위해 QMTP(Quick Mail Transfer Protocol)를 제안했으며 이는 Qmail에서 지원됩니다. Qmail의 설계 목표는 궁극적으로 16M 컴퓨터에서 하루에 약 백만 개의 이메일을 전달할 수 있게 만드는 것입니다.
신뢰성: 신뢰성을 보장하기 위해 Qmail은 이메일이 디스크에 올바르게 기록된 경우에만 성공적인 처리 결과를 반환합니다. 이렇게 하면 디스크 기록 중에 시스템 충돌이나 정전이 발생하더라도 이메일이 실패하지 않도록 보장할 수 있습니다. 분실되었습니다. 대신 다시 전송하세요.
특히 간단한 가상 도메인 관리에는 가상 POP 도메인을 지원하기 위해 vpopmail이라는 타사에서 개발한 추가 기능도 있습니다. 이 패키지를 사용하기 위해 POP3 사용자는 시스템에 공식 계정이 필요하지 않습니다.
사용자가 제어하는 메일링 리스트 기능을 지원하려면 ezmlm을 사용하세요.
메일 사용자와 시스템 계정은 격리되어 있습니다. 사용자에게 메일 계정을 제공할 때 시스템 계정을 설정할 필요가 없으므로 보안이 강화됩니다.
센드메일과 Qmail
우선, sendmail은 오랜 개발 역사를 지닌 MTA이며 현재 버전은 8.10.2입니다. 물론 Sendmail은 이식성, 안정성 및 버그 없는 측면에서 확실한 보장을 제공합니다. 그러나 Sendmail을 공격하는 것에 대한 게시물이 인터넷에 많이 있는데, 이는 관리자에게 악몽입니다. Sendmail의 개발 과정에서 숙련된 Sendmail 관리자 그룹이 탄생했으며 Sendmail에는 Sendmail 컬렉션 외에도 Bryan Costales가 Eric Allman과 함께 쓴 O'Reilly의 sendmail 책이 많이 있습니다. 인터넷, FAQ 및 기타 리소스에 대한 튜토리얼 수. 이러한 대용량 문서는 Sendmail의 다양한 기능을 잘 활용하는 데 매우 중요합니다. 그러나 Sendmai는 현재 성숙한 MTA입니다.
물론 Sendmail에는 몇 가지 단점이 있어 구성 파일이 복잡해집니다. 물론 m4 매크로를 사용하면 구성 파일 생성이 훨씬 쉬워집니다. 그러나 모든 구성 옵션을 익히는 것은 쉽지 않습니다. Sendmail은 이전 버전에서 많은 보안 취약점을 가지고 있었기 때문에 관리자는 신속하게 버전을 업그레이드해야 했습니다. 그리고 Sendmail의 인기로 인해 공격 대상이 되기도 하는데, 여기에는 장점과 단점이 모두 있습니다. 이는 보안 허점을 신속하게 발견할 수 있다는 의미이지만 Sendmail을 더욱 안정적이고 안전하게 만들어줍니다. 또 다른 문제는 Sendmail의 기본 구성에는 일반적으로 최소한의 보안 기능이 있어 Sendmail이 공격에 취약해지는 경우가 많다는 것입니다. Sendmail을 사용한다면, 여는 각 옵션의 의미와 영향을 확실히 이해해야 합니다. Sendmail의 작동 방식을 이해하고 나면 Sendmail을 설치하고 유지 관리하는 것이 매우 쉬워집니다. Sendmail의 구성 파일을 통해 사용자는 상상할 수 있는 모든 요구 사항을 충족할 수 있습니다.
Qmail은 보안 문제를 염두에 두고 설계 및 구현된 옵션입니다. 보안 이메일 게이트웨이와 같은 빠른 솔루션이 필요한 경우 Qmail이 좋은 선택입니다. Qmail과 Sendmail의 구성 파일은 완전히 다릅니다. Qmail의 경우 자체 구성 파일이 있으며 구성 디렉터리에는 5~30개의 서로 다른 파일이 포함되어 있으며 각 파일은 서로 다른 부분(예: 가상 도메인 또는 가상 호스트 등)의 구성을 구현합니다. 이러한 구성 지침은 매뉴얼에 잘 문서화되어 있지만 Qmail의 코드 구조는 그리 좋지 않습니다.
Qmail은 Sendmail보다 훨씬 작으며 오늘날의 메일 서버에서 볼 수 있는 일부 기능이 부족합니다. Sendmail과 달리 큐메일은 도메인 이름의 정확성을 보장하기 위해 이메일 봉투 보낸 사람의 도메인 이름을 확인하지 않습니다. RBL 자체에 대한 지원은 제공하지 않지만 이를 구현하려면 추가 기능이 필요합니다. , Sendmail은 RBL을 지원합니다. 마찬가지로, Qmail은 의도한 수신자가 존재하지 않는 이메일의 수신을 거부할 수 없습니다. 대신, 먼저 이메일을 수신한 다음 이 사용자에게 속하지 않은 이메일을 반환합니다. Qmail의 가장 큰 문제점은 여러 수신자에게 이메일을 보내는 처리에 있습니다. 동일한 도메인의 여러 사용자에게 대용량 이메일을 보내는 경우 Sendmail은 이메일 사본만 대상 메일 서버로 보냅니다. Qmail은 병렬로 여러 번 연결하여 매번 사용자에게 복사본을 보냅니다. 사용자가 매일 여러 사용자에게 대용량 이메일을 보내야 하는 경우 Qmail을 사용하면 대역폭이 많이 낭비됩니다. 이렇게 생각할 수 있습니다. Sendmail 최적화는 대역폭 리소스를 절약하고 Qmail 최적화는 시간을 절약합니다. 사용자 시스템의 대역폭이 좋으면 Qmail의 성능이 더 좋아집니다. 사용자 시스템의 대역폭 리소스가 제한되어 있고 메일링 리스트 정보를 많이 보내야 한다면 Sendmail이 더 효율적입니다. Qmail은 .forward를 지원하지 않습니다(.forward는 많은 경우 사용자에게 매우 유용합니다). /var/spool/mail을 사용하지 않지만 사용자의 홈 디렉토리에 메일을 저장합니다. 다음은 Qmail을 사용하여 완료하기 쉽지 않은 몇 가지 작업입니다. Qmail을 사용하여 이러한 작업을 완료하려면 사용자가 직접 구현하거나 타사에서 제공하는 신뢰할 수 없는 모듈을 사용해야 할 수도 있습니다.
Qmail의 소스 코드는 Sendmail보다 이해하기 쉽기 때문에 내부적으로 MTA 메커니즘을 이해하려는 사람들에게 유리합니다. Qmail은 보안 측면에서도 더욱 안정적이어야 합니다. Qmail은 훌륭한 기술 지원을 제공하지만 널리 사용되지는 않으며 Sendmail과 같은 대규모 관리자 사용자 기반을 보유하고 있습니다. Qmail 설치는 Sendmail만큼 자동화되지 않으며 수동 단계가 필요합니다. 더욱이 Qmail의 문서는 Sendmail만큼 완전하고 풍부하지 않습니다.
Qmail에는 Sendmail보다 추가 기능이 적습니다. 일반적으로 경험이 약간 부족한 관리자의 경우 Qmail을 선택하는 것이 상대적으로 좋습니다. Qmail은 더 간단하며 특별한 기능은 일반 사용자의 요구를 충족할 수 있습니다. Sendmail은 오피스 제품군과 유사하며 기능의 80%가 사용되지 않는 경우가 많습니다. 이로 인해 Qmail은 Sendmail에 없는 좀 더 대중적이고 실용적인 기능을 갖고 있습니다. 예를 들어, Qmail에는 pop3 지원 기능이 내장되어 있습니다. Qmail은 호스트 또는 사용자 위장, 가상 도메인 등도 지원합니다. Qmail의 단순성 덕분에 구성도 상대적으로 쉽습니다.
Qmail은 Sendmail보다 더 안전하고 효율적인 것으로 간주됩니다. Qmail을 실행하는 펜티엄 컴퓨터는 하루에 약 200,0000개의 메시지를 처리할 수 있습니다.
큐메일은 다른 MTA보다 훨씬 간단하며 주로 다음에 반영됩니다:
(1) 다른 MTA는 메일 전달, 메일 별칭 및 메일링 목록에 대해 독립적인 메커니즘을 사용하는 반면 큐메일은 간단한 전달 메커니즘을 사용하여 사용자가 자신의 메일링 목록을 처리할 수 있도록 합니다.
(2) 다른 MTA는 빠르고 안전하지 않은 방식과 느린 큐 방식의 메일 전달 메커니즘을 제공하는 반면, 큐메일 전달은 새 메일의 출현에 의해 트리거되므로 전달 모드는 빠른 큐 방식뿐입니다.
(3) 다른 MTA에는 실제로 MTA의 평균 로드를 모니터링하기 위한 특정 버전의 inetd가 포함되어 있는 반면, 큐메일은 시스템 로드를 제한하는 내부 메커니즘을 설계했기 때문에 qmail-smtpd는 시스템의 inet에서 안전하게 실행될 수 있습니다.
sendmail은 많은 상업적 지원을 갖고 있으며, 대규모 사용자 기반으로 인해 인터넷에서 잠재적인 기술 지원이 많이 있습니다. Qmail은 기술 지원이 매우 제한되어 있습니다. Qmail을 지원하는 inter7.com이라는 회사가 있습니다. 이 회사는 웹 기반 관리 도구인 QmailAdmin, vpopmail을 통한 가상 도메인 지원, 심지어 웹 기반 클라이언트까지 포함하는 무료 추가 기능도 제공합니다. SqWebMail.
Qmail에는 다른 단점도 있습니다. 예를 들어, 표준을 완전히 준수하지 않으며 DSN을 지원하지 않습니다. 저자는 DSN이 죽어가는 기술이며 Qmail의 VERP는 DSN과 같은 다른 호스트의 지원에 의존하지 않고도 동일한 작업을 완료할 수 있다고 믿습니다. Qmail의 또 다른 문제점은 7비트 시스템 표준을 따르지 않고 매번 8비트를 보낸다는 것입니다. 이메일 수신자가 이 상황을 처리할 수 없으면 이메일이 왜곡됩니다.
보안 측면에서 Sendmail은 Qmail보다 좋지 않습니다. Qmail은 상대적으로 짧고 간결하지만 여전히 기본적인 STMP 기능을 제공합니다. Qmail의 코드 주석은 더 적습니다. Qmail의 좋은 특징은 하나의 큰 파일을 사용하여 사용자의 모든 메일을 저장하는 대신 선택적 디렉터리 기반 메일 저장 형식을 지원한다는 것입니다. 사용자의 메일 서버가 많은 POP3 서비스를 수행하는 경우 이 메일 저장 형식을 사용하면 효율성이 향상될 수 있습니다. 불행하게도 Pine 자체는 이 저장 형식을 지원하지 않습니다. 필요한 경우 일부 패치를 사용하여 이 목적을 달성할 수 있습니다.
Qmail의 장점은 각 사용자가 루트 사용자 권한 없이 메일링 리스트를 만들 수 있다는 것입니다. 예를 들어, 사용자 foo는 더 나은 기능을 제공하기 위해 foo-slashdot, foo-linux, foo-chickens라는 이름의 메일링 리스트를 만들 수 있습니다. ezmlm(EZ Mailing List Maker)이라는 도구로 자동 등록 및 로그아웃, 인덱싱 등 Majordomo의 다양한 기능을 지원할 수 있지만 모두 CLI 기반이므로 몇 개의 파일만 편집하면 됩니다. Qmail은 일반적으로 소수의 사용자만 지원하거나 메일링 목록을 관리하는 데 사용되는 소규모 시스템에서 작업하는 데 매우 적합합니다. Qmail은 빠르고 간단합니다. Qmail은 보안과 쉬운 구성을 원할 때 최고의 선택입니다. Qmail은 2시간 안에 구성할 수 있지만 Sendmail은 2일 안에 구성하지 못할 수도 있습니다.
Rocketmail internic 등은 모두 qmail을 사용하여 구축되었습니다.
Z메일러
ZMailer는 Unix 시스템용 고성능 다중 프로세스 메일 프로그램입니다. [일명 X.400 용어로 MTA]는 ftp://ftp.funet.fi/pub/unix/mail/zmailer/ 서버에서 무료로 다운로드할 수 있습니다. 또한 모노블록 모드로 설계되었습니다. Hotmail과 같은 메일 시스템은 Zmailer를 사용하여 구축됩니다.
Exim Exim은 Cambridge University에서 개발한 GPL 호환 MTA로, 그 스타일은 Smail 3과 유사하지만 Smail 3보다 더 완벽합니다. 최신 버전은 3.15이다. 주요 사이트는 http://www.exim.org/입니다. 가장 큰 특징은 구성이 간편하다는 점이지만, 보안성은 Qmail이나 Postfix만큼 좋지는 않습니다.
다음은 여러 MTA의 특징을 비교한 것입니다. 일반적으로 Qmail과 Postfix는 모두 매우 좋은 MTA입니다. 선택 기준은 종종 Qmail보다 늦은 개발 역사를 가지고 있습니다.
MTA 성숙도 보안 기능 성능 Sendmail 호환성 모듈식 설계 qmail 중간 높음 높음 높음 애드온 예 Sendmail 높음 낮음 높음 낮음 x 아니요 접미사 낮음 높음 높음 높음 예 예 exim 중간 낮음 높음 중간 예 아니요
물론 여기에 소개된 여러 MTA 외에도 다른 상업용 또는 무료 MTA도 사용할 수 있습니다.