Difference between revisions of "Mail server"

From CNM Wiki
Jump to: navigation, search
(Agents)
 
(89 intermediate revisions by the same user not shown)
Line 1: Line 1:
A [[mail server]] (hereinafter, the ''Server'') is any digital construct that is located in a computer network under its distinguishable hostname in order to accept, analyze, adjust, and transfer [[email|electronic mail message]]s (or, simply, [[email]]s) from [[mail user agent]]s ([[mail user agent|MUA]]s) to [[mail exchanger]]s ([[mail exchanger|MX host]]s) and vice versa.
+
A [[mail server]] (hereinafter, the ''Server'') is any digital construct that is located in a computer network under its distinguishable [[hostname]] in order to accept, analyze, adjust, clarify, and transfer [[email|electronic mail message]]s (or, simply, [[email]]s) from [[email client]]s to [[mail exchanger]]s ([[mail exchanger|MX host]]s) and vice versa.
  
The ''Server'' can also refer to [[mail server software]]. More broadly, [[email software]] may refer to all the software utilized for [[mail user agent|MUA]]s, the ''Servers'', or [[mail exchanger]]s.  
+
The ''Server'' can also refer to [[mail server software]]. More broadly, [[email software]] may refer to all the software utilized for [[email client]]s, the ''Servers'', or [[mail exchanger]]s.  
  
  
Line 9: Line 9:
 
:To communicate with:
 
:To communicate with:
 
#[[Mail exchanger]]s, all the ''Servers'' use the [[Simple Mail Transfer Protocol]] ([[Simple Mail Transfer Protocol|SMTP]]).
 
#[[Mail exchanger]]s, all the ''Servers'' use the [[Simple Mail Transfer Protocol]] ([[Simple Mail Transfer Protocol|SMTP]]).
#[[Mail user agent]]s ([[mail user agent|MUA]]s), the ''Servers'' use a variety of protocols, most commonly, [[POP3]] and/or [[IMAP]].
+
#[[Email client]]s, the ''Servers'' use a variety of protocols, most commonly, [[POP3]] and/or [[IMAP]].
  
 
===Functions===
 
===Functions===
 
:With regard to:
 
:With regard to:
 
:*'''Outgoing''' messages, the ''Servers'' may be designed to:
 
:*'''Outgoing''' messages, the ''Servers'' may be designed to:
:*#Accept messages from [[mail user agent]]s.
+
:*#Accept messages from [[email client]]s.
 
:*#Analyze messages looking for their inconsistencies and/or missing data.
 
:*#Analyze messages looking for their inconsistencies and/or missing data.
 
:*#Adjust messages while correcting inconsistencies and/or adding the missing data.
 
:*#Adjust messages while correcting inconsistencies and/or adding the missing data.
Line 21: Line 21:
 
:*#Accept messages from [[mail exchanger]]s.
 
:*#Accept messages from [[mail exchanger]]s.
 
:*#Analyze messages looking for their inconsistencies and/or missing data.
 
:*#Analyze messages looking for their inconsistencies and/or missing data.
:*#Add information about the found inconsistencies and/or missing data to the messages.
+
:*#Add information about the found inconsistencies and/or missing data to the messages. This information may further be used by [[email client]]s to combat spam.
:*#Transfer messages to [[mail user agent]]s.
+
:*#Transfer messages to [[email client]]s.
  
 
===Hosting===
 
===Hosting===
:Depending on their functionality, the ''Servers'' are hosted in two types of locations:
+
:To communicate with [[email client]]s and [[mail exchanger]]s, the ''Servers'' shall be located between those two.
:*[[Internet service provider]]s ([[Internet service provider|ISP]]s) tend to run both [[mail exchanger]]s and [[DNS resolver]]s, which provide [[mail exchanger]]s with [[DNS record]]s.
+
 
:*[[Mail submission agent|mail submission]], [[mail transfer agent|mail transfer]], and [[mail delivery agent]]s are usually hosted by local computing devices that are connected to the [[Internet]].
+
:#'''[[Email client]]s''' are hosted at either:
 +
:#*End-user devices such as a mail app on a cell phone; or
 +
:#*Mail service provider such as [[Gmail]] locations.
 +
:#'''The ''Servers''''' are hosted by local computing devices that are connected to the [[Internet]]. On the one side, they can be colocated with [[email client]]s, especially if the [[email client]] is hosted by a mail service provider. On another side, the ''Server'' can can colocated with [[mail exchanger]]s when the mail service provider is an [[Internet service provider]] ([[Internet service provider|ISP]]). [[Unix]]-based [[operating system]]s include the ''Server'' in their bundles, so do some [[end-user application]]s such as [[MediaWiki]], [[Moodle]], and [[Redmine]]. At the same time, the ''Servers'' can also be hosted separately from [[email client]]s and [[mail exchanger]]s.
 +
:#'''[[Mail exchanger]]s''' are hosted by [[Internet service provider]]s ([[Internet service provider|ISP]]s), who also run [[DNS resolver]]s, which provide [[mail exchanger]]s with [[DNS record]]s.
  
 
===Agents===
 
===Agents===
:*'''[[Mail submission agent]]''' (also known as [[outgoing mail server]], [[message submission agent]] or by its acronym [[MSA]]), which is a [[computer application]] used to accept, analyze, correct, and send [[email]]s that end-users enter into their [[mail user agent|MUA]]s;
+
:*'''[[Mail submission agent]]''' (also known as [[outgoing mail server]], [[message submission agent]] or by its acronym [[MSA]]), which is a [[software application]] used to accept, analyze, correct, and send [[email]]s that end-users enter into their [[email client]]s;
:*'''[[Mail transfer agent]]''' (also known as [[message transfer agent]] or by its acronym [[MTA]]), which is a [[computer application]] used to transfer [[email]]s between computers;
+
:*'''[[Mail transfer agent]]''' (also known as [[message transfer agent]] or by its acronym [[MTA]]), which is a [[software application]] used to transfer [[email]]s between computers;
:*'''[[Mail delivery agent]]''' (also known as [[incoming mail server]], [[message delivery agent]] or by its acronym [[MDA]]), which is a [[computer application]] used to deliver an [[email]] to its recipient's [[mail user agent|MUA]].
+
:*'''[[Mail delivery agent]]''' (also known as [[incoming mail server]], [[message delivery agent]] or by its acronym [[MDA]]), which is a [[software application]] used to deliver an [[email]] to its recipient's [[email client]].
  
 
==Best practices==
 
==Best practices==
Line 39: Line 43:
 
*https://manuals.gfi.com/en/kerio/connect/content/server-configuration/mail-delivery-and-dns-records/essential-dns-records-for-mail-delivery-and-spam-protection-1223.html
 
*https://manuals.gfi.com/en/kerio/connect/content/server-configuration/mail-delivery-and-dns-records/essential-dns-records-for-mail-delivery-and-spam-protection-1223.html
 
*https://www.cyberpunk.rs/mail-server-setup-postfix
 
*https://www.cyberpunk.rs/mail-server-setup-postfix
 +
 +
==Software==
 +
 +
===General comparison===
 +
:{|class="wikitable" width=100% style="text-align:center;"
 +
|+General comparison of the actively-developed ''Servers''
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|-
 +
|rowspan="4"|Legal properties
 +
!Ownership
 +
|[[open-source|OSS]]||[[Open-source|OSS]]||[[Open-source|OSS]]||[[Proprietary]]||[[open-source|OSS]]
 +
|-
 +
!Developer
 +
|Sam Varshavchik||Timo Sirainen, contributors||Community||[[Microsoft]]||Wietse Venema, contributors
 +
|-
 +
![[Software license|License]]
 +
|[[GNU General Public License|GPL]]||[[MIT License|MIT-L]], [[LGPLv2]]||[[GNU General Public License|GPL]]||Unknown||[[IBM Public License|IBM-PL]], [[Eclipse Public License|EPL]]
 +
|-
 +
!rowspan="2"|Latest release
 +
|1.0.8||2.3.5||4.92||2019 RTM||3.4.6
 +
|-
 +
|rowspan="2"|History
 +
|6/8/2019||3/5/2019||2/10/2019||10/22/2018||06/29/2019
 +
|-
 +
!Introduction
 +
|2000||2002||1995||1996||1998
 +
|-
 +
|rowspan="2"|[[Operating system|OS]]
 +
![[Linux]]/[[Unix]]
 +
|Yes||Yes||Yes||No||Yes
 +
|-
 +
![[Microsoft Windows|Windows]]
 +
|No||No||No||Yes||No
 +
|-
 +
|rowspan="4"|Technology properties
 +
!Description
 +
|Full-stack mail server best known for its IMAP server component||IMAP and POP3 server||SMTP server||Full-stack mail and calendar server||SMTP server
 +
|-
 +
!Database
 +
|No||Yes||Yes||via [[ESE]]||Yes
 +
|-
 +
!File system
 +
|[[maildir]]||[[maildir]], [[mbox]], [[dbox]]||Own||Own||Own
 +
|-
 +
![[Webmail]]
 +
|Yes||No||No||Yes||No
 +
|-
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|}
 +
 +
===Communication protocols===
 +
:{|class="wikitable" width=100% style="text-align:center;"
 +
|+[[Communication protocol]]s supported by the popular ''Clients''
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|-
 +
|Transfer
 +
![[SMTP]]
 +
|Yes||No||Yes||Yes||Yes
 +
|-
 +
|rowspan="2"|Access
 +
![[IMAP]]
 +
|Yes||Yes||via [[Dovecot]], etc.||Yes||via [[Dovecot]], etc.
 +
|-
 +
![[POP3]]
 +
|Yes||Yes||via [[Dovecot]], etc.||Yes||via [[Dovecot]], etc.
 +
|-
 +
|Compatibility
 +
![[IPv6]]
 +
|Yes||Yes||Yes||Yes||Yes
 +
|-
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|}
 +
 +
===Access===
 +
:{|class="wikitable" width=100% style="text-align:center;"
 +
|+Access features in the popular ''Clients''
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|-
 +
|rowspan="4"|Protocols
 +
![[LDAP]]
 +
|Yes||Yes||Yes||Yes||Yes
 +
|-
 +
![[SMTP AUTH]]
 +
|Yes||No||Yes||Yes||Yes
 +
|-
 +
!POP before SMTP
 +
|Yes||via DRAC plugin||Yes||Unknown||No
 +
|-
 +
![[APOP]]
 +
|Yes||Yes||Yes||Yes||No
 +
|-
 +
|rowspan="2"|Mechanisms
 +
!APOP and SASL
 +
|rowspan="2"|Managed by Courier authentication library which can use PAM, Userdb, PostgreSQL, MySQL, and EXTERNAL.||Not an SMTP server, but offers [[Dovecot SASL]] to [[MTA]]s: ANONYMOUS, PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5, SCRAM-SHA1, EXTERNAL, GSSAPI, NTLM, OTP, SKEY, RPA.||rowspan="2"|Cyrus SASL, Dovecot SASL, GNU SASL, CRAM-MD5, Heimdal GSSAPI, PLAIN, LOGIN, SPA||rowspan="2"|LOGIN, NTLM||rowspan="2"|Supports all Cyrus SASL authentication methods except for APOP.
 +
|-
 +
!Other
 +
|PAM, MySQL, PostgreSQL, SQLite, Kerberos 5, proxied IMAP auth, getpwent, shadow, SIA, BSDauth, Vpopmail.
 +
|-
 +
|rowspan="2"|Support
 +
!Filesystem
 +
|Yes||Yes||Yes||No||Yes
 +
|-
 +
!Database
 +
|Yes||Yes||Yes||No||Yes
 +
|-
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|}
 +
 +
===Security===
 +
:{|class="wikitable" width=100% style="text-align:center;"
 +
|+Security features in the popular ''Clients''
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|-
 +
|rowspan="3"|[[SSL]]/TLS support
 +
!SMTP over TLS
 +
|Yes||No||Yes||Yes||Yes
 +
|-
 +
!POP over TLS
 +
|Yes||Yes||No||Yes||No
 +
|-
 +
![[SSL]]
 +
|Yes||Yes||Yes||Yes||Yes
 +
|-
 +
|rowspan="2"|Security features other than [[SSL]]/TLS
 +
!IMAP IDLE
 +
|Yes||Yes||via [[Dovecot]], etc.||Yes||via [[Dovecot]], etc.
 +
|-
 +
!DANE
 +
|No||Unknown||Yes||Unknown||Yes
 +
|-
 +
|Filtering
 +
!Sieve
 +
|[[maildrop]]||Yes||Yes||Unknown||No
 +
|-
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|}
 +
 +
===Antispam===
 +
:{|class="wikitable" width=100% style="text-align:center;"
 +
|+Antispam features in the popular ''Clients''
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|-
 +
|rowspan="4"|Listings
 +
!DNSBL
 +
|Yes||Unknown||Yes||Yes||Yes
 +
|-
 +
!SURBL
 +
|Unknown||Unknown||Yes||Unknown||Unknown
 +
|-
 +
!Spamtraps
 +
|Yes||Unknown||Yes||Unknown||Unknown
 +
|-
 +
!Greylisting
 +
|Yes||Unknown||Yes||Yes||Yes
 +
|-
 +
|rowspan="3"|Analysis-based
 +
!SPF
 +
|Yes||Unknown||Optional at build time||Yes||Yes
 +
|-
 +
!DKIM
 +
|Yes||Unknown||Yes||Unknown||Optional
 +
|-
 +
!DMARC
 +
|Yes||Unknown||Optional at build time||Unknown||Optional
 +
|-
 +
|rowspan="5"|Manipulation-based
 +
!Tarpit
 +
|Yes||Unknown||Yes||Yes||Unknown
 +
|-
 +
!Bayesian filters
 +
|Yes||Unknown||via [[Apache SpamAssassin|SpamAssassin]], etc.||Unknown||via [[Apache SpamAssassin|SpamAssassin]], etc.
 +
|-
 +
!Regular expressions
 +
|Yes||Unknown||Yes||Unknown||Yes
 +
|-
 +
!Embedded Antivirus
 +
|Yes, [[ClamAV]]||Unknown||Optional, any||Unknown||Optional, via content filter interface
 +
|-
 +
!Embedded Antispam
 +
|Yes||Unknown||Optional, any||Unknown||Optional, via content filter interface
 +
|-
 +
!Category
 +
|Features
 +
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 +
|}
 +
 +
===Other notable software===
 +
*[[Cyrus IMAP]]
 +
*[[Kolab]]
 +
*[[Sendmail]]
 +
*[[Zimbra]]

Latest revision as of 16:03, 17 April 2020

A mail server (hereinafter, the Server) is any digital construct that is located in a computer network under its distinguishable hostname in order to accept, analyze, adjust, clarify, and transfer electronic mail messages (or, simply, emails) from email clients to mail exchangers (MX hosts) and vice versa.

The Server can also refer to mail server software. More broadly, email software may refer to all the software utilized for email clients, the Servers, or mail exchangers.


Features

Protocols

To communicate with:
  1. Mail exchangers, all the Servers use the Simple Mail Transfer Protocol (SMTP).
  2. Email clients, the Servers use a variety of protocols, most commonly, POP3 and/or IMAP.

Functions

With regard to:
  • Outgoing messages, the Servers may be designed to:
    1. Accept messages from email clients.
    2. Analyze messages looking for their inconsistencies and/or missing data.
    3. Adjust messages while correcting inconsistencies and/or adding the missing data.
    4. Transfer messages to mail exchangers.
  • Incoming messages, the Servers may be designed to:
    1. Accept messages from mail exchangers.
    2. Analyze messages looking for their inconsistencies and/or missing data.
    3. Add information about the found inconsistencies and/or missing data to the messages. This information may further be used by email clients to combat spam.
    4. Transfer messages to email clients.

Hosting

To communicate with email clients and mail exchangers, the Servers shall be located between those two.
  1. Email clients are hosted at either:
    • End-user devices such as a mail app on a cell phone; or
    • Mail service provider such as Gmail locations.
  2. The Servers are hosted by local computing devices that are connected to the Internet. On the one side, they can be colocated with email clients, especially if the email client is hosted by a mail service provider. On another side, the Server can can colocated with mail exchangers when the mail service provider is an Internet service provider (ISP). Unix-based operating systems include the Server in their bundles, so do some end-user applications such as MediaWiki, Moodle, and Redmine. At the same time, the Servers can also be hosted separately from email clients and mail exchangers.
  3. Mail exchangers are hosted by Internet service providers (ISPs), who also run DNS resolvers, which provide mail exchangers with DNS records.

Agents

Best practices

Software

General comparison

General comparison of the actively-developed Servers
Category Features Courier Dovecot Exim MS Exchange Postfix
Legal properties Ownership OSS OSS OSS Proprietary OSS
Developer Sam Varshavchik Timo Sirainen, contributors Community Microsoft Wietse Venema, contributors
License GPL MIT-L, LGPLv2 GPL Unknown IBM-PL, EPL
Latest release 1.0.8 2.3.5 4.92 2019 RTM 3.4.6
History 6/8/2019 3/5/2019 2/10/2019 10/22/2018 06/29/2019
Introduction 2000 2002 1995 1996 1998
OS Linux/Unix Yes Yes Yes No Yes
Windows No No No Yes No
Technology properties Description Full-stack mail server best known for its IMAP server component IMAP and POP3 server SMTP server Full-stack mail and calendar server SMTP server
Database No Yes Yes via ESE Yes
File system maildir maildir, mbox, dbox Own Own Own
Webmail Yes No No Yes No
Category Features Courier Dovecot Exim MS Exchange Postfix

Communication protocols

Communication protocols supported by the popular Clients
Category Features Courier Dovecot Exim MS Exchange Postfix
Transfer SMTP Yes No Yes Yes Yes
Access IMAP Yes Yes via Dovecot, etc. Yes via Dovecot, etc.
POP3 Yes Yes via Dovecot, etc. Yes via Dovecot, etc.
Compatibility IPv6 Yes Yes Yes Yes Yes
Category Features Courier Dovecot Exim MS Exchange Postfix

Access

Access features in the popular Clients
Category Features Courier Dovecot Exim MS Exchange Postfix
Protocols LDAP Yes Yes Yes Yes Yes
SMTP AUTH Yes No Yes Yes Yes
POP before SMTP Yes via DRAC plugin Yes Unknown No
APOP Yes Yes Yes Yes No
Mechanisms APOP and SASL Managed by Courier authentication library which can use PAM, Userdb, PostgreSQL, MySQL, and EXTERNAL. Not an SMTP server, but offers Dovecot SASL to MTAs: ANONYMOUS, PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5, SCRAM-SHA1, EXTERNAL, GSSAPI, NTLM, OTP, SKEY, RPA. Cyrus SASL, Dovecot SASL, GNU SASL, CRAM-MD5, Heimdal GSSAPI, PLAIN, LOGIN, SPA LOGIN, NTLM Supports all Cyrus SASL authentication methods except for APOP.
Other PAM, MySQL, PostgreSQL, SQLite, Kerberos 5, proxied IMAP auth, getpwent, shadow, SIA, BSDauth, Vpopmail.
Support Filesystem Yes Yes Yes No Yes
Database Yes Yes Yes No Yes
Category Features Courier Dovecot Exim MS Exchange Postfix

Security

Security features in the popular Clients
Category Features Courier Dovecot Exim MS Exchange Postfix
SSL/TLS support SMTP over TLS Yes No Yes Yes Yes
POP over TLS Yes Yes No Yes No
SSL Yes Yes Yes Yes Yes
Security features other than SSL/TLS IMAP IDLE Yes Yes via Dovecot, etc. Yes via Dovecot, etc.
DANE No Unknown Yes Unknown Yes
Filtering Sieve maildrop Yes Yes Unknown No
Category Features Courier Dovecot Exim MS Exchange Postfix

Antispam

Antispam features in the popular Clients
Category Features Courier Dovecot Exim MS Exchange Postfix
Listings DNSBL Yes Unknown Yes Yes Yes
SURBL Unknown Unknown Yes Unknown Unknown
Spamtraps Yes Unknown Yes Unknown Unknown
Greylisting Yes Unknown Yes Yes Yes
Analysis-based SPF Yes Unknown Optional at build time Yes Yes
DKIM Yes Unknown Yes Unknown Optional
DMARC Yes Unknown Optional at build time Unknown Optional
Manipulation-based Tarpit Yes Unknown Yes Yes Unknown
Bayesian filters Yes Unknown via SpamAssassin, etc. Unknown via SpamAssassin, etc.
Regular expressions Yes Unknown Yes Unknown Yes
Embedded Antivirus Yes, ClamAV Unknown Optional, any Unknown Optional, via content filter interface
Embedded Antispam Yes Unknown Optional, any Unknown Optional, via content filter interface
Category Features Courier Dovecot Exim MS Exchange Postfix

Other notable software