Difference between revisions of "Mail server"
(→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 [[ | + | 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 [[ | + | 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]]). | ||
− | #[[ | + | #[[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. | ||
− | === | + | ===Hosting=== |
− | : | + | :To communicate with [[email client]]s and [[mail exchanger]]s, the ''Servers'' shall be located between those two. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | :#'''[[Email client]]s''' are hosted at either: | |
− | : | + | :#*End-user devices such as a mail app on a cell phone; or |
− | :*[[Internet service provider]]s ([[Internet service provider|ISP]]s | + | :#*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 [[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]]. | ||
− | === | + | ==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 | ||
− | + | ==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 |
− | !Mail | + | |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.
Contents
Features
Protocols
- To communicate with:
- Mail exchangers, all the Servers use the Simple Mail Transfer Protocol (SMTP).
- 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:
- Accept messages from email clients.
- 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 exchangers.
- Incoming messages, the Servers may be designed to:
- Accept messages from mail exchangers.
- 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 clients to combat spam.
- Transfer messages to email clients.
- Outgoing messages, the Servers may be designed to:
Hosting
- To communicate with email clients and mail exchangers, the Servers shall be located between those two.
- 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.
- 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.
- Mail exchangers are hosted by Internet service providers (ISPs), who also run DNS resolvers, which provide mail exchangers with DNS records.
- Email clients are hosted at either:
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 emails that end-users enter into their email clients;
- Mail transfer agent (also known as message transfer agent or by its acronym MTA), which is a software application used to transfer emails 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.
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
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