Difference between revisions of "Mail server"

From CNM Wiki
Jump to: navigation, search
(Records)
 
(97 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 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:
 +
:*'''Outgoing''' messages, the ''Servers'' may be designed to:
 +
:*#Accept messages from [[email client]]s.
 +
:*#Analyze messages looking for their inconsistencies and/or missing data.
 +
:*#Adjust messages while correcting inconsistencies and/or adding the missing data.
 +
:*#Transfer messages to [[mail exchanger]]s.
 +
:*'''Incoming''' messages, the ''Servers'' may be designed to:
 +
:*#Accept messages from [[mail exchanger]]s.
 +
:*#Analyze messages looking for their inconsistencies and/or missing data.
 +
:*#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 [[email client]]s.
  
===Process model===
+
===Hosting===
:The following model illustrates the process of electronic mail message transfer:
+
:To communicate with [[email client]]s and [[mail exchanger]]s, the ''Servers'' shall be located between those two.
:#A common sender enters some electronic mail message to his or her [[mail user agent|MUA]];
 
:#The [[mail user agent|MUA]] transfers the message to a [[mail submission agent]];
 
:#The [[mail submission agent]] transfers the message to a [[mail exchanger]];
 
:#The [[mail exchanger]] finds the location of recipient's [[mail delivery agent]] in order to transfer the message to this agent directly or through those [[mail exchanger]]s that communicate with the recipient's [[mail delivery agent]];
 
:#The [[mail delivery agent]] transfers the message to receiver's [[mail user agent|MUA]] or [[mail user agent|MUA]]s;
 
:#The recipient now is able to read the message and send the response.
 
  
===Locations===
+
:#'''[[Email client]]s''' are hosted at either:
:Depending on their functionality, the ''Servers'' are hosted in two types of locations:
+
:#*End-user devices such as a mail app on a cell phone; or
:*[[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 service provider such as [[Gmail]] locations.
:*[[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]].
+
:#'''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 [[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 [[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 [[software application]] used to deliver an [[email]] to its recipient's [[email client]].
  
===Outgoing mail===
+
==Best practices==
 +
*https://skrilnetz.net/setup-your-own-mailserver/
 +
*https://www.linuxbabe.com/mail-server/block-email-spam-postfix
 +
*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
  
:#'''[[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;
+
==Software==
:#'''[[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;
 
  
===Incoming mail===
+
===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]]
 +
|}
  
:#'''[[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]].
+
===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]]
 +
|}
  
==Records==
+
===Security===
:''Main wikipage: [[DNS record]]''
+
:{|class="wikitable" width=100% style="text-align:center;"
Several [[DNS record]]s are used to both evaluate sent mail and map mail transfers.
+
|+Security features in the popular ''Clients''
 
+
!Category
===A record===
+
|Features
:''Main wikipage: [[A record]]''
+
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS Exchange]]||[[Postfix]]
 
+
|-
:[[Mail exchanger]]s look for [[A record]]s to locate the [[IPv4 address]] of the recipient's host device. An example of this record is<blockquote><code>mail.friendsofcnm.org. IN A 134.209.40.232</code></blockquote>
+
|rowspan="3"|[[SSL]]/TLS support
 
+
!SMTP over TLS
===MX record===
+
|Yes||No||Yes||Yes||Yes
:''Main wikipage: [[MX record]]''
+
|-
 
+
!POP over TLS
:Any [[MX record]] is the [[DNS record]] that identifies the server that handles email address for the [[hostname]]. ''MX'' is an abbreviation for ''mail exchanger''.
+
|Yes||Yes||No||Yes||No
 
 
:Each [[MX record]] contains three pieces of information: the [[hostname]], the priority, and the [[hostname]] of the mail server that handles mail for the host device. The sample of the [[MX record]] is as follows: <code>friendsofcnm.org IN MX 10 friendsofcnm.org</code>, where:
 
:{|class="wikitable" width=100%
 
!Sample&nbsp;code
 
|style="text-align:center;"|Field
 
!Description!!Values
 
 
|-
 
|-
|style="background-color:#fff;"|<code>friendsofcnm.org</code>
+
![[SSL]]
!Labels
+
|Yes||Yes||Yes||Yes||Yes
|One or more labels of the [[hostname]] and [[TLD]] name.||Selected
 
 
|-
 
|-
|style="background-color:#fff;"|<code>IN</code>
+
|rowspan="2"|Security features other than [[SSL]]/TLS
!Class
+
!IMAP IDLE
|The [[Internet]] or [[intranet]]; other options are all outdated.||IN
+
|Yes||Yes||via [[Dovecot]], etc.||Yes||via [[Dovecot]], etc.
 
|-
 
|-
|style="background-color:#fff;"|<code>MX</code>
+
!DANE
![[MX record|Record]]
+
|No||Unknown||Yes||Unknown||Yes
|''MX'' stands for [[MX record]] and sets up the relationship between hostname labels and [[IP address]]||Stable
 
 
|-
 
|-
|style="background-color:#fff;"|<code>10</code>
+
|Filtering
!Priority
+
!Sieve
|A numerical value that signifies the priority of this particular [[MX record]] and, consequently, for the mail server. The values used for this are only important if more than one mail server is used. The lower the value of the priority field, the higher the priority of the mail server.||Assigned
+
|[[maildrop]]||Yes||Yes||Unknown||No
 
|-
 
|-
|style="background-color:#fff;"|<code>mail.friendsofcnm.org</code>
+
!Category
!Mail server hostname
+
|Features
|The [[hostname]] of the mail server that handles email for this domain. This hostname is a google address when [[Google Apps]] handle emails for this host device. Any mail server hostname should have a validly configured [[A record]] in order to receive emails smoothly.||Assigned
+
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS&nbsp;Exchange]]||[[Postfix]]
 
|}
 
|}
  
===TXT record===
+
===Antispam===
:''Main wikipage: [[TXT record]]''
+
:{|class="wikitable" width=100% style="text-align:center;"
 
+
|+Antispam features in the popular ''Clients''
:Any [[TXT record]] is a [[DNS record]] that allows for storage of human-readable and machine-readable texts that, if posted, would be assigned to a specific [[hostname]].
+
!Category
 
+
|Features
:With regard to machine-readable texts, [[TXT record]]s may serve multiple purposes, including:
+
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS&nbsp;Exchange]]||[[Postfix]]
:*[[Sender policy framework]] ([[SPF]]) data storage. This data confirms the actual systems that are authorized to send mail on behalf of the given [[hostname]]. This is useful in the prevention of spam emails being sent with a forged sender address originating from the particular host device. RFC 4408 discourages this practice as "not optimal," however, because SPF now has its own DNS resource record type (code 99);
+
|-
:*[[DomainKeys Identified Mail]] ([[DKIM]]) data. This data allows a receiving mail server to authenticate entities that have signed a specific email message. [[DKIM]] is similar to [[SPF]] in that it can help reduce spam email from containing forged email addresses originating from your domain, but it also contains a large amount of additional functionality.
+
|rowspan="4"|Listings
 
+
!DNSBL
:''Main wikipage: [[A record]]''
+
|Yes||Unknown||Yes||Yes||Yes
 
+
|-
:[[Mail exchanger]]s look for [[A record]]s to locate the [[IPv4 address]] of the recipient's host device. An example of this record is<blockquote><code>mail.friendsofcnm.org. 134.209.40.232</code></blockquote>
+
!SURBL
 
+
|Unknown||Unknown||Yes||Unknown||Unknown
Setting up the MX record
+
|-
 
+
!Spamtraps
c7Apht1[1]
+
|Yes||Unknown||Yes||Unknown||Unknown
 
+
|-
(There is a ‘dot’ after the domain name)
+
!Greylisting
Setting up the SPF record
+
|Yes||Unknown||Yes||Yes||Yes
 
+
|-
We create a new TXT record
+
|rowspan="3"|Analysis-based
 
+
!SPF
"v=spf1 a mx ip4:1.2.3.4 -all"
+
|Yes||Unknown||Optional at build time||Yes||Yes
 
+
|-
cyFoSjh[1]
+
!DKIM
 
+
|Yes||Unknown||Yes||Unknown||Optional
The SPF record protects from email spoofing. It will simply tell other mail servers that only our server is authorized to send emails for yourdomain.com (more aboutSPF).
+
|-
Setting up the DMARC record
+
!DMARC
 
+
|Yes||Unknown||Optional at build time||Unknown||Optional
We create a new TXT record named _dmarc.yourdomain.com.
+
|-
(There is a ‘dot’ after the domain name)
+
|rowspan="5"|Manipulation-based
 
+
!Tarpit
"v=DMARC1; p=quarantine; rua=mailto:postmaster@yourdomain.com"
+
|Yes||Unknown||Yes||Yes||Unknown
 
+
|-
Now we will setup the hostname for the PTR record
+
!Bayesian filters
 
+
|Yes||Unknown||via [[Apache SpamAssassin|SpamAssassin]], etc.||Unknown||via [[Apache SpamAssassin|SpamAssassin]], etc.
Gg6s1vv
 
Our configuration should look similar to this
 
 
 
o1BA9Fy
 
 
 
It will take a while to propagate the new configuration throughout the entire internet.
 
 
 
===PTR record===
 
:''Main wikipage: [[PTR record]]''
 
 
 
:Any [[PTR record]] is a [[DNS record]] that translates a [[hostname]] into an [[IP address]]. ''PTR'' is an abbreviation for ''pointer''; [[PTR record]]s ''point'' to [[IP address]]es. In comparison with [[A record]]s, [[PTR record]]s perform the exact opposite function.
 
 
 
:[[PTR record]]s use the following format: <code><IP address in a reverse order>.in-addr.arpa PTR <hostname></code>. For instance, <code>1.93.89.159.in-addr.apra PTR friendsofcnm.org</code>, where:
 
:{|class="wikitable" width=100%
 
!Sample&nbsp;code
 
|style="text-align:center;"|Field
 
!Description!!Values
 
 
|-
 
|-
|style="background-color:#fff;"|<code>1.93.89.159</code>
+
!Regular expressions
!Reversed IP address
+
|Yes||Unknown||Yes||Unknown||Yes
|The [[IP address]] of the location that the resulting [[hostname]] points to in a reverse order. The actual [[IP address]] used in this example is <code>159.89.93.1</code>||Assigned
 
 
|-
 
|-
|style="background-color:#fff;"|<code>.in-addr.arpa</code>
+
!Embedded Antivirus
!Domain
+
|Yes, [[ClamAV]]||Unknown||Optional, any||Unknown||Optional, via content filter interface
|The domain name that historically arrived from the times when the Internet was called ''Arpa''. ''In-addr'' is an abbreviation for ''internet address''.||No other options
 
 
|-
 
|-
|style="background-color:#fff;"|<code>PTR</code>
+
!Embedded Antispam
![[PTR record|Record]]
+
|Yes||Unknown||Optional, any||Unknown||Optional, via content filter interface
|''PTR'' stands for [[PTR record]] and sets up the relationship between [[IP address]] and [[hostname]].||Stable
 
 
|-
 
|-
|style="background-color:#fff;"|<code>friendsofcnm.org</code>
+
!Category
![[Hostname]]
+
|Features
|The [[hostname]] that points to the [[IP address]].||Selected
+
![[Courier Mail Server|Courier]]!![[Dovecot]]!![[Exim]]!![[Microsoft Exchange Server|MS&nbsp;Exchange]]||[[Postfix]]
 
|}
 
|}
  
:[[PTR record]]s are needed for outgoing mail servers such as [[Postfix]], because most of the mail providers reject or mark as spam messages received by mail servers without valid reverse dns configuration such as a missing [[PTR record]] or mismatch with an [[A record]] for the [[hostname]].
+
===Other notable software===
 
+
*[[Cyrus IMAP]]
==Best practices==
+
*[[Kolab]]
*https://skrilnetz.net/setup-your-own-mailserver/
+
*[[Sendmail]]
*https://www.linuxbabe.com/mail-server/block-email-spam-postfix
+
*[[Zimbra]]
*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
 

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