Research: “The ideal mail server. What is a mail server

For most users, email looks like a regular website with a user-friendly interface in which you can comfortably type text, attach pictures and send messages to friends. However, in reality everything is much more complicated. Linux mail servers are used to transfer data. They are the ones who process, deliver and route messages. This article will look at the most popular mail servers on Linux, as well as how to configure some of them.

Overview of solutions for creating systems for sending and receiving messages

Using a mail server on Linux, you can quickly and conveniently deploy your own mechanism for receiving and sending messages. There are a lot of ready-made solutions on the Internet that just need to be installed and “finished” a little. Among them, of course, there are systems that are more difficult to configure, the configuration of which will be shown below using the example of Postfix.

SendMail - popular and fast

SendMail can be called a pioneer among mail servers on Linux. The first version was released back in 1983. Since then, SendMail has mastered many stations and nodes. It is still actively used to this day. A fast and optimized server, however, it does not meet modern security requirements and is quite difficult to configure.

Postfix - flexible, powerful and reliable

Initially developed for the internal needs of the IBM Research Center. Many functions and features are borrowed from SendMail. However, it is much faster, safer, and setup takes less time and effort. Can be used as a mail server on Linux, MacOS, Solaris.

IredMail

This server is essentially a large set of scripts and configuration files. With their help, you can quickly set up a mail server on Linux with or without a Web interface. It supports SMTP, POP3 and IMAP protocols. The installation procedure generally will not take more than 10 minutes, depending on the skill of the admin.

The iRedMail process will automatically install anti-virus and anti-spam tools. In addition to them, password brute force protection mechanisms, various analyzers, etc. can be added. An excellent option for a ready-made Linux mail server.

IndiMail

It combines several well-known protocols and technologies for implementing the transmission of email messages. The system integrates the ability to create channels between nodes of the same network, for example, to organize a common mail resource for different branches of a company. The system has a very flexible settings mechanism. It is implemented through redefining variables, of which there are about 200 in the server. In this case, you can create several IndiMail work threads in parallel.

Rumble

Linux mail web server written in C++. There is a built-in API for management and scripting. Has a lot of functions and capabilities out of the box. Several well-known DBMS versions are supported. If desired or reconfigured, you can quickly switch from one to another. The server interfaces are separated by rights to their specific zones - users, domain and server administrators.

Zentyal

Probably the simplest and most convenient ready-made Linux mail server. In it, almost all instructions and settings are executed in a special graphical interface. This mail server is based on Adding functions or capabilities is done by installing new modules. With its help, you can organize both a separate mail server and a certain router or intermediary node between the main highways.

Axigen

Free, powerful and feature-rich email server. Can be used either through its own web interface or through any email client. It can collect mail from external mailboxes, automatically respond to messages, filter them, and conveniently import them in CSV format.

It has its own web interface for configuration and administration. For fans of the classic control model, commands can be set via the console.

The server supports a large number of operating systems, including the Windows line. The interaction process is very well documented and explained with numerous examples on the developer's website.

CommuniGate Pro

Cross-platform server capable of working with email and voice messages. It is possible to connect to it using email clients or a centralized web interface. There is an implementation of differentiating the access rights of one account for several people. Plugins can help integrate different antivirus systems and solutions.

Setting up using one system as an example

After reviewing mail servers on Linux, it’s worth considering setting up one of them in more detail.

For example, you can show how to install on Ubuntu. It is assumed that the hardware already has this operating system and has been updated to the latest version.

The first thing you need to do is download the server itself. It is available in the Ubuntu repositories, so in the terminal you need to type:

During the installation process, the system will ask you to specify a new password for the database user under the root account. It must then be repeated to confirm. Then he may ask what type of installation he is interested in. Then the system mail name, in which you can specify - some.server.ru.

Now we need to create a database for the server. You can do this using the command:

mysqladmin -u root -p create mail.

This is where you will need the previously specified password for the database.

Now you can log into the MySQL shell itself using the command:

mysql -u root. The system will again ask for a password that must be entered.

You will also need tables in the main database; you can create them like this:

Now the mysql console is no longer needed and you can exit it.

Postfix configuration

First, you need to show the server how to access the database, how to look for the necessary values ​​there. Several files will be created for this. They can be located in the /etc/postfix directory. Here are their names:

They should contain the following content, among which the query line for each file will be unique:

user = admin name specified when creating the table;

password =<пароль админа>;

dbname = name of the created database;

query = query, different for each file;

hosts = 127.0.01.

Query variable for files:

These files will contain the password for entering the database, so access to them must be somehow limited. For example, setting rights is restrictive.

Now we just need to add a few more settings to Postfix. It is worth noting that in the lines below you need to replace some.server.ru with a real domain.

Safety Certificates

First, you will need to create your own certification authority, which will confirm the authenticity of all certificates.

A file storage is created:

And the configuration file. It contains the following code:

A little explanation about it:

  • variable C - here you need to specify the country in two-letter format, for example, for Russia - RU;
  • ST - means a specific region or area;
  • L - city;
  • O - name of the enterprise;
  • CN - here you need to specify the domain to which the key is intended;
  • E-mail address.

Then the key itself is created:

sudo openssl genrsa -des3 -out ca.key 4096

The system will prompt you to specify a password for this key, which you should never forget.

Now we need the public version of the key:

openssl req -new -x509 -nodes -sha1 -days 3650 -key ca.key -out ca.crt -config ca.conf

Here you will need to enter the previously created password for the private key.

Now the certificate:

openssl pkcs12 -export -in ca.cer -inkey ca.key -out ca.pfx

mkdir SERV/some.domain.ru

And it creates its own configuration:

nano SERV/some.domen.ru/openssl.conf

It should contain the settings below. They are similar to those that have already been created.

To generate keys use the command:

sudo openssl genrsa -passout pass:1234 -des3 -out SERV/some.server.ru/server.key.1 2048

This line uses the password 1234. It is needed for a while.

Now the password is removed from the command:

openssl rsa -passin pass:1234 -in SERV/some.server.ru/server.key.1 -out SERV/ some.server.ru/server.key

Now you need to sign the key:

openssl req -config SERV/some.server.ru/ openssl.conf -new -key SERV/some.server.ru/ server.key -out SERV/some.server.ru/ server.csr

And remove the temporary one: rm -f SERV/ some.server.ru/server.key.1

With the help of these manipulations, a mail server will appear that can simply receive and send messages. In addition to the main ones, there are also additional modules that can be installed to expand the functionality. This will allow you to create a full-fledged mail server on Linux for an enterprise.

Additional functions

The following modules can be used to expand the capabilities of the mail server, for example, "Antispam" or a mailing service.

  • Horde. Very convenient web interface for mail. In addition to its main task, it has a built-in calendar, scheduler and contacts. It has a convenient configuration and setup scheme.
  • Amavisd-new. Acts as a gateway and is mainly used to connect various technologies. Amavisd-new receives the message, filters it, determines whether it could be dangerous, and connects additional functions of other modules for verification.
  • SpamAssassin. As the name suggests, the module filters letters according to certain rules, identifying spam. Can be used either separately or as part of various demons.
  • ClamAV. A popular antivirus in the Linux environment.Is free software. Can work with many different mail servers, scan files and messages on the fly.
  • Razor. This module stores checksums of spam emails and directly interacts with P ostfix.
  • Pyzor is another tool for identifying messages that contain code that is malicious or not useful to the user.
  • Fail2ban. A tool that protects user accounts from brute force hacking of passwords. After a certain number of attempts, a specific IP address is blocked for some time.
  • Mailman. A convenient tool for creating newsletters via a web interface.
  • Munin. A tool for monitoring server performance. It has a large number of ready-made plugins that expand its capabilities. The operation of network protocols can be tracked on convenient graphs.

Conclusion

As you can see from the article, installing and configuring a full-fledged mail server manually is a long and difficult task. However, this approach will allow us to generally understand how the system works and know its weak and strong points. In the event of a problem, a trained administrator can quickly isolate and resolve the problem. This will be especially relevant for large companies, whose work depends entirely on the speed of receiving and sending messages to clients or partners. For small networks, an “out of the box” solution is quite suitable, which can be quickly deployed using a convenient interface.

However, if the server breaks down, it will take a long time to delve into and understand the structure of the system. Using the example of the Postfix mail server, the article showed basic methods and configuration methods for initial work. Together with a large number of modules, plugins and add-ons, this will create a powerful and reliable tool for sending and receiving messages.

Email is not just a website where you can exchange messages, such as VKontakte or Facebook. This is a more complex mechanism that works using its own protocol. On the Internet, mail clients send letters to a mail server, then they are sent to the addressee. That is why we can send mail to all recipients, regardless of their domain, mail, gmail, yandex, etc. At a low level, these services work using the same protocol.

To send a message, the mail server uses the MTA (Mail Transfer Agent) program.

An MTA is an application that determines routes and transmits email from one node on a network to another. For this, the SMTP protocol is used - Simple Mail Transfer Protocol or simple mail transfer protocol.

To send mail, a mail client is used, it can send and receive letters from the mail server and also uses SMTP, but this is not necessarily MTA.

MTAs run on the server and computers use email clients such as Mozilla Thunderbird, Evolution, Outlook, etc. In this article, we will look at the best Linux email servers.

1. Sendmail

The Sendmail mail server is now known as Proofpoint after Proofpoint Inc acquired Sendmail Inc. Today it is the most popular and oldest MTA for the Linux operating system. If you compare Sendmail and more modern mail servers, there are many limitations.

Setting up a server is very difficult and the security system is weak, so alternative mail servers have been developed. But still he copes with his task quite well. Let's continue our review of Linux mail servers with more modern options.

2.Postfix

Postfix is ​​another cross-platform, popular mail server that was developed by Wietse Zweitze Venema for his own mail server while he was working in IBM's R&D department.

It is a strong competitor to the very popular Sendmail and can run on Linux, MacOS, Solaris and other Unix-like systems.

It borrows a lot of Sendmail's features, but there are also many differences and improvements. Postfix is ​​fast, secure and easy to set up. Main functions:

  • Control of missed mail;
  • Supports multiple protocols;
  • Database support;
  • Mailbox support;
  • Support for address changes;

3.Exim

Exim is a free mail server for Linux, also developed for Mac OS, Solaris and other Unix-like systems. There are huge opportunities for mail routing, as well as mechanisms for monitoring incoming traffic.

Main features:

  • No support for POP3 and IMAP protocols;
  • Supports RFC 2821 SMTP and RFC 2033 LMTP protocols for transmitting email messages;
  • Configure access lists, content scanning, encryption, routing control and much more;
  • Excellent documentation;
  • Plugins are supported, such as Lemonade, which adds support for POP3 and IMAP protocols.

4. Qmail

Qmail is another free and modern open source email server. It is simple, reliable and effective, offering extensive security features.

We can say that this is a small but functional MTA. Here are its main functions:

  • Works not only on Linux, but also on several Unix-like operating systems, for example: FreeBSD, Solaris, Mac OSX;
  • Simple and fast installation;
  • Automatic host configuration;
  • Clear separation between addresses, files and programs;
  • Full support for address groups;
  • Allows each user to manage their mailings;
  • Supports VERP;
  • Supports automatic prevention of mailing loops;
  • Supports ezmlm mailing list manager.

5. Mutt

Mutt is a small but powerful console client for Unix-like systems. It has several interesting features, despite the fact that it is just a terminal client:

  • Dividing the message into threads;
  • IMAP and POP3 support;
  • Supports several mailbox formats: MBox, MH, Maildir, MMDF;
  • Delivery status support;
  • PGP/MIME support (RFC2015);
  • Support for mailing lists;
  • Full control over the message header;
  • Easy to install and configure;
  • Active community of developers and users;

6. Alpine

Alpine is an easy to use and fast email client. It is based on the Pine messaging system and is great for both experienced and novice users. You can use the built-in help tools to get help.

conclusions

In this article, we looked at how email is transmitted over the network, as well as the best Linux mail servers (MTA). We also touched on the topic of console email clients. Losst uses Postfix to process mail. What mail server are you using? Which one do you think is the best? Why? Write in the comments!

We present to your attention a new course from the team The Codeby- "Penetration testing of Web Applications from scratch." General theory, working environment preparation, passive fuzzing and fingerprinting, Active fuzzing, Vulnerabilities, Post-exploitation, Tools, Social Engeneering and much more.


This tutorial will show you how to set up a working mail server in Ubuntu or Debian. As we know, the two main protocols used in the mail server are SMTP and POP/IMAP. In this tutorial, postfix will be used for SMTP, while dovecot will be used for POP/IMAP. They are both open source, stable and highly customizable.

Please note that mail server security issues are beyond the scope of this lesson and are covered in the article "".

Prerequisites

Each domain must have an entry on the DNS server. It is recommended NOT to use live domains for testing purposes. In this tutorial, the test domain example.tst will be used in a lab setting. The DNS server for this hypothetical domain would have at least the following entries.

  • Direct zone for example.tst:
IN MX 10 mail.example.tst. mail.example.tst. IN A 192.168.10.1
  • Reverse zone for example.tst:
192.168.10.1 IN PTR mail.example.tst.

When setting up a live mail server, these entries can be modified to suit system requirements.

Setting the hostname (hostname)

First, the mail server hostname must be defined in /etc/hostname and /etc/hosts. Moreover, only the host name should be placed in the first file.

Root@mail:~# vim /etc/hostname mail root@mail:~# vim /etc/hosts ## IP Fully Qualified Domain Name Hostname ## 192.168.10.1 mail.example.tst mail

Adding users

Every Linux user, by default, has an automatically created mailbox. These users and mailboxes will be used as mail accounts and their corresponding mailbox addresses. Creating a user is very simple.

Root@mail:~# adduser alex

Installation and configuration of SMTP

SMTP: Postfix installation

root@mail:/etc/postfix# vim main.cf ## server name ## myhostname = mail.example.tst ## defining aliases ## alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix /aliases ## transport definition ## transport_maps = hash:/etc/postfix/transport ## myorigin specifies the domain name for messages originating from this server. In our case, all outgoing emails must have "@example.tst" as the originating domain ## myorigin = example.tst ## mydestination parameter determines which domains this machine will deliver locally instead of forwarding to another machine. ## mydestination = mail.example.tst, localhost.example.tst, localhost, hash:/etc/postfix/transport ## smarthost address. It is not used in this lesson, it will be discussed in a future instruction ## relayhost = ## trusted networks of the sender. postfix will not forward emails coming from other networks ## mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.10.0/24 ## mailbox size in bytes. 0 means no limit ## mailbox_size_limit = 0 ## postfix will listen on all available interfaces, for example eth0, eth1, eth2 and so on ## inet_interfaces = all
  • transport

Emails destined for the example.tst domain are determined to be delivered locally without any DNS queries.

root@mail:/etc/postfix# vim transport example.tst local: .example.tst local: root@mail:/etc/postfix# postmap transport
  • aliases

We assume that all letters sent to user userA should also be delivered to user userB, for this the aliases file is modified as shown below:

Root@mail:/etc/postfix# vim aliases userA: userA, userB root@mail:/etc/postfix# postalias aliases

Please note: The "userA:userB" synth specifies that mail should only be directed to userB. UserA will not receive a copy of the email.

SMTP: Startup and Maintenance

postfix can be started with the command.

Root@mail:~# service postfix restart

The log file in /var/log/mail.log should provide useful information if something goes wrong. You can also check whether the mail server is listening on TCP port 25 using netstat.

Root@mail:~# netstat -nat tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN

As you can see from the output, the server is listening on TCP port 25 for incoming connection requests.

Installing and configuring POP/IMAP

POP/IMAP: Installing dovecot

POP/IMAP: Preparing configuration files

The following parameters change as needed.

Root@mail:~# vim /etc/dovecot/conf.d/10-mail.conf ## location of mailboxes specified in the "mbox" format ## mail_location = mbox:~/mail:INBOX=/var/mail/ %u ## dovecot has been given the necessary permissions to read/write user mailboxes ## mail_privileged_group = mail

This should be enough to start the POP/IMAP service on the mail server.

POP/IMAP: Service Installation

Now that dovecot is installed and configured, it can be launched using the following command.

Root@mail:~# service dovecot restart

Again, the log file (/var/log/mail.log) can provide important clues if something goes wrong. You can find out if dovecot is running by using netstat as follows.

Root@mail:/etc/dovecot/conf.d# netstat -nat tcp 0 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0 0.0.0.0:143 0.0.0.0:* LISTEN

Using a mail server with a custom mail program

The mail server is now ready for use. An email account can be set up using your favorite email client on your desktop, laptop, tablet or phone. You can also configure webmail (mail with a web interface) on the server, but instructions for webmail will be in the following lessons. At this stage, the Mozilla Thunderbird mail program has defined the following settings for my server:

Troubleshooting mail server problems

  • Your best friend is the log file /var/log/mail.log. Any clues as to why the mail isn't working can be found here.
  • Make sure your firewall is properly configured.
  • Make sure the DNS server has the proper entries.

To summarize, the demonstration in this lesson, as already mentioned, took place in a laboratory setting. A test DNS server with all the necessary records can be deployed, and users will exchange letters with each other on the same server, for example, the same domain. To make it even more interesting, you can deploy multiple mail servers with different domains, to check the communication between domains, the necessary DNS records must be present for this.

Valid DNS records are required for live mail servers. You can tune the postfix and dovecot settings according to your needs.

Attention A: For those who want to deploy a live mail server, or any mail server that has Internet access, make sure your SMTP is secure. Typically, attacks on SMTP come from the Internet and from malicious programs within the local network.

Hope this helps.

These programs cannot be installed on virtual hosting. A completely autonomous mail server can only be created on a virtual private (dedicated) server, i.e. on a VDS (VPS). - this article, as the title suggests, will tell you about a high-quality and at the same time the cheapest option for a virtual private server, which also uses cloud technologies.

In general, the topic of mail is very close to the authors; at various times we have already considered the issues of creating mail on our own domains (this allows you to choose short and beautiful names for mailboxes), how to “attach” your domain to mail.ru and indeed to any popular mailbox, how to create your own offline mail on hosting, etc. All this and much more can be found under the tag your mail.

The Guarantor is a trusted intermediary between the Participants during the transaction.


| |

Postfix is ​​a Mail Transfer Agent, or MTA, an application for sending and receiving email. This guide shows how to install and configure Postfix to only send messages to local applications (that is, applications installed on the same server as Postfix).

Why is this needed?

When using a third-party email provider, there is no need to run your own email server. If you have applications installed on a cloud server that need to send email notifications, then a local SMTP messaging server is a great alternative to a third-party email service provider and a full-blown SMTP server.

A great example of an alert application is OSSEC; this system can send alerts to any specified email address. Like many other applications of its kind, OSSEC can use either a third-party SMTP server or a local SMTP message transfer server to send notifications.

Note: If you need to receive notifications from the server to only one address, it is recommended to create a white list of email addresses that may accidentally end up in spam.

If the server must send notifications to potential site users (for example, electronic registration confirmations), you need to protect the domain from spammers; then server notifications are less likely to be marked as spam.

Requirements

To complete this guide you will need:

  • and a user account with elevated sudo privileges;
  • A valid domain name (this guide uses the fictitious domain example.com).

The server hostname must match this domain or subdomain. To check the hostname of the server, enter hostname at the command prompt. The output should match the server name it was given when it was created (for example, example.com).

1: Install Postfix

To install Postfix, as well as a number of other programs needed to configure mail, simply install the mailutils package:

sudo apt-get install mailutils

Postfix and its dependencies will be installed with the mailutils package. The command output looks something like this:

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert
0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue?

To install all the above packages, press ENTER. At the end of the installation, the Postfix setup window will appear, in which you need to select the type of mail setup; The default option is Internet Site, which better suits the requirements of this guide (press TAB and ENTER to confirm).

After this, a new Postfix configuration window will appear with the System mail name field. This field must match the server name you chose when creating it. Provide a name, then press TAB and ENTER.

Note: If a subdomain like first.example.com appears in the string, shorten it to example.com.

2: Setting up Postfix

This section will show you how to configure Postfix to send messages from the server on which it is installed (that is, localhost).

To do this, Postfix must be configured to listen only on the loopback interface - this is a virtual network interface that is used by the server for internal communication. Open the Postfix configuration file using the nano editor:

sudo nano /etc/postfix/main.cf

Find the following block of code in it:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Replace the line inet_interfaces = all with the line inet_interfaces = loopback-only. Now this block looks like this:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

Instead of loopback-only, you can also use localhost:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

Once you've finished editing the file, save your changes and close it (CTRL+X, then Y and ENTER). After this, restart Postfix:

sudo service postfix restart

3: Testing the SMTP server

Now you need to check if Postfix can send messages to an external email address. To do this, use the mail command, which is also included in the mailutils package.

So, to send a test message, type:

echo "This is the body of the email" | mail -s "This is the subject line" [email protected]

Note: Instead of [email protected] Please use a valid email address.

Check the mailbox to which the message was sent. If the sent message does not appear, check your spam folder.

Note: This manual uses a fictitious address [email protected], where gunter is the Linux username and domain is the server hostname (this string must be specified in the From field).

4: Mail forwarding

Finally, you need to set up mail forwarding (or forwarding) so that the server can forward messages sent to the root user to your personal external address.

To have Postfix send system-generated messages to your email address, edit the /etc/aliases file.

sudo nano /etc/aliases

In a standard Ubuntu 14.04 installation, this file looks like this:


postmaster: root

This setting forwards system messages to the root user. Now you need to make sure that messages are redirected to your email address. To do this, add the line to the file:

# See man 5 aliases for format
postmaster: root
root: [email protected]

Replace [email protected] with your personal email address. Save and close the file. For the changes to take effect, run the following command:

Now test the forwarding by sending a message to the root user:

echo "This is the body of the email" | mail -s "This is the subject line" root

This message should appear in your inbox (if not, check your spam folder).

Tags: ,

Today, when email is the basis for business processes, companies need a reliable and high-performance email system that would protect against viruses and spam, be able to authorize users, encrypt transmitted traffic and offer many convenient features. The presented solutions allow you to achieve this result with a minimum of effort.

iRedMail

Name: iRedMail

License: GNU GPL

Platform:*nix

Mail servers on *nix impress with their openness, performance and security, but for a beginner, deployment from scratch and subsequent maintenance can turn into a real nightmare. The iRedMail project aims to solve this problem. In essence, this development is a set of scripts and ready-made configs that simplify the process of deployment and initial configuration of a Postfix/Dovecot-based mail server with support for SMTP, POP3 and IMAP protocols. After launching, the script itself will download and install the necessary packages, create the first virtual domain (by asking a minimum of questions) with an administrator and a user. The deployment process itself takes about ten minutes, after which it will be possible to send and receive mail. You don’t have to read the documentation or delve into the settings, and you don’t need any specific *nix knowledge. Accounts can be saved in OpenLDAP or MySQL, this is selected during the installation phase. Then you can create any number of domains, mailboxes and aliases, that is, there are no restrictions. To protect mail from viruses and spam, SpamAssassin and ClamAV will be automatically installed, as well as tools that provide support for SPF (Sender Policy Framework), DKIM (DomainKeys Identified Mail), HPR (HELO Randomization Prevention), Spamtrap and white, black, gray lists technologies . To block password brute force attempts, set iptables Fail2ban. The project offers its development iRedAPD (Access Policy Delegation), which allows you to manage Postfix policies by delegating powers between users. Management is carried out using the Roundcube WebMail web interface; in parallel, the service management tools phpLDAPadmin, PostfixAdmin, phpMyAdmin and the AWStats log analyzer will be installed to view statistics. A localized administrator interface of our own design is also available - iRedAdmin, in two versions: free Open Source and commercial iRedAdmin-Pro. The first allows you to manage only accounts and domains, the second solves all issues related to the administration of the mail system. All components are installed on one “clean” server; If you already have MySQL running, you can only connect to it if you do the necessary settings manually (requires some experience).

Installation on i386/x86_64 versions of Red Hat Enterprise Linux, CentOS, Gentoo Linux, Debian, Ubuntu, openSUSE and Open/FreeBSD is supported. Several guides are available on the project website to help you quickly navigate.

IndiMail

Name: IndiMail

License: GNU GPL

Platform:*nix

Messaging platform using SMTP, IMAP, POP3 protocols, supporting QMQP, QMTP, DKIM and BATV (Bounce Address Tag Validation) and mail checking for spam and viruses. Based on several Open Source solutions: Qmail, Courier IMAP/POP3, serialmail (mail delivery over dial-up connections), qmailanalog (mailing lists), dotforward, fastforward, mess822, daemontools, ucspi-tcp, Bogofilter, Fetchmail and others. Provides a set of proprietary tools for managing virtual domains and user accounts. Provides routing for SMTP, IMAP and POP3, which allows you to host a mail domain on multiple servers with data exchange between them or as a proxy. This is very convenient if the organization consists of several remote offices. Using the hostcntrl utility, you can add individual addresses from other domains for service. This allows IndiMail to be used in a heterogeneous environment without the need to lift multiple domains or when migrating from a proprietary solution. Several servers with data synchronization make it easy to expand the structure. To provide better scalability and performance, some components have been changed (Qmail in particular). IndiMail uses several so-called collections (queue collection), each of which runs its own qmail-send/qmail-todo process and can store data on a separate hard drive. This architecture allows you to process requests faster than the original Qmail.

The developers give complete freedom in settings; almost all parameters can be overridden through variables (and there are only about 200 of them). For example, the CONTROLDIR variable points to the directory with configuration files, QUEUEDIR - the directory with queues. That is, you can run several copies of IndiMail on one server with your own settings for each queue, sender, recipient and node. But you don't need to understand all the variables: it only takes a few edits to get IndiMail up and running. Beginners can manage settings using the FLASH menu (built on Ncurses). MySQL is used to store data about virtual users; address books can be stored in OpenLDAP. The latest releases are fully compatible with systemd. The developers pay a lot of attention to the security of both the server itself and the services - minimal use of SETUID, clear separation between programs/addresses/files, five-level trust partitioning, automatic recognition of local IPs, access-list, tcprules, content filter, TLS/SSL and much more .

You can install IndiMail on any 32/64 *nix platform. Sources, packages and repositories for some popular Linux distributions (RHEL/CentOS 5/6, Fedora, openSUSE/SLE, Mandriva, Debian and Ubuntu) are available for download. To manage the server, about 45 programs for various purposes are offered (most are located in /var/indimail/bin); accounts can also be configured using the iWebAdmin web interface (built on QmailAdmin), which must be installed separately.

Rumble

Name: Rumble

License: GNU GPL

Platform:*nix, Win


Mail server supporting SMTP (ESMTPSA), POP3 and IMAP. It is very easy to manage; a web interface is used for administration. Quite suitable for small organizations with multiple domains. Written in C/C++, it offers its own API for scripts (Lua and C/C++). The architecture allows you to increase server performance by clustering servers for one or all domains. Supports SSL/TLS, SQLite and MySQL, authentication (MD5/PLAIN/STARTTLS), white/grey/blacklist, SpamAssassin, BATV and VERP (Variable Envelope Return Path) modules are included for anti-spam protection. The settings provide the ability to limit the maximum message size.

Source codes and x86/x64 binaries for installation on Linux (Generic, Ubuntu, Debian) are available on the site. To start the server, you need to unpack the archive and run the script, the program will do the rest itself. For convenience, source codes and configuration files can be distributed into the appropriate directories and autoloaded when the OS starts. Server parameters and modules are configured in the rumble.conf file. To be able to register via the web interface (port 2580), you should delete the automatically created file modules/rumblelua/auth.cfg (it contains the admin password), then open the web browser and specify a new password. Now you can manage domains, accounts and mailboxes, server settings, view logs and statistics.

By default, SQLite is used as the database; if its capabilities are not enough or the organization already has MySQL running, then you can easily switch the server to work with this DBMS.

There are three levels of server administration - server administrator, domain administrator and user. The server administrator interface only allows you to create and delete domains, plus a number of specific settings are available. Having created a domain, you need to add a new account in the RumbleLua User menu and specify this domain in its settings. This will be the domain administrator, who, after registering in the system, gets the opportunity to create mailboxes, aliases, bind an address to a module, set a program that will be launched when a letter is received at a specific address, and configure a relay. The interface is not localized, although everything is very simple and clear.

Zentyal - mailer out of the box

Beginners who are intimidated by the very word Linux and the need to enter commands in the terminal need a simple solution that allows them to quickly deploy an email service without reading documentation. As an option, we can recommend Zentyal - a specialized distribution built on the basis of Ubuntu Server (the latest release is based on Ubuntu 12.04 LTS) and allows you to perform all the necessary installations and settings using a graphical interface. Zentyal is a general-purpose distribution that can be used as a router with UTM functions, an office server, or a messaging server. All necessary functions are implemented using installed modules/packages. There are currently over thirty modules available across five categories that can be added with just one click. Zentyal can be installed as a standalone server, using its own user base, or work in a master/slave connection with the ability to replicate between multiple servers and synchronize credentials with LDAP/AD.

Axigen

Name: Axigen

License: GNU GPL

Platform: Linux, FreeBSD, Solaris, Windows


Multifunctional, fast, secure mail server (SMTP/POP3/IMAP) with collaboration functions, calendar, task list and notes, developed by the Romanian company Gecad Technologies. Users can work with messages through an email client or using a localized (and very nice) web interface built using Ajax technology - it can be completely customized. Hotkeys are supported, further enhancing the feeling of working with a regular desktop application. The settings include: collecting mail from external mailboxes, an answering machine, a mail filter, setting aliases and more. The user can also export/import contacts to a CSV file for transfer to other applications. In addition to the standard one, it also offers a simplified interface for mobile devices and ActiveSync support for synchronizing messages, contacts and calendar. As an addition, an extension for working with public folders is installed.

Administration is performed using the command line or through a web module (running on port 9000), which is understandable even for a beginner. At the same time, certain rights regarding settings are subtly delegated to other users.

Integration with an LDAP server is possible (OpenLDAP and eDirectory are described in the documentation) or Active Directory; for this, special extension schemes must be installed. Implemented information backup and recovery modules, mailing lists, cluster and load balancing support, MAPI interface, POP3 and IMAP proxies. The server can serve multiple domains with different settings. The documentation describes how to integrate an IM service built on Jabber/XMPP. In addition, Axigen has a developed reporting system that displays all kinds of graphs; in total, about a hundred templates have been prepared. TLS/SSL can be used to protect information; all popular authentication mechanisms are supported: plain, login, cram-md5, digest-md5, and so on. Integration with fifteen anti-virus solutions (Kaspersky, DrWeb, Symantec, ClamAV and others) and spam (including SpamAssassin) is possible. SPF, DKIM, black/grey/white list technologies and filtering by IP/sender country are supported. All this is connected literally with one click from the administrator interface. It is possible to exchange data between Axigen and MS Outlook; for this you need to install a connector.

A big advantage of Axigen is the ability to run the server on multiple OSes. Packages are available on the download page for Debian, Red Hat Enterprise Linux and CentOS 5/6, SUSE Linux Enterprise 10/11, Fedora 12 and 13, OpenSUSE 11.2 and 11.3, FreeBSD 7.x/8.x, Solaris 10 x86/SPARC and Win2k3/2k8 (x86/x64). Virtuozzo has also been prepared - containers for rapid deployment in virtual environments. The installation is very simple and is done using a GUI interface, in which you have to select services, set ports and specify network interfaces for connections of users and administrators. With proper skill, the entire process will take no more than 10–15 minutes. On the project website you can find detailed documentation and several videos that show the installation and administration process. In addition, demo user and administrator interfaces are available. The Axigen Free Mail Server (Office Edition) is provided free of charge and allows you to serve up to one hundred e-mail accounts and five calendars.

CommuniGate Pro

Name: CommuniGate Pro

License: Free/paid

Platform:*nix, Windows, Mac OS X


Popular platform for exchanging email, IM, VoIP, with calendar functions and collaboration automation. For example, VoIP provides voice/video and provides features such as conferencing, auto attendant (IVR), automatic call distribution, call queue management, voice mail. At the same time, CommuniGate supports installation on a large number of OS and architectures (about thirty in total), IPv4 and IPv6, standard protocols SMTP, SIP, IMAP, XMPP, LDAP, RADIUS, XIMSS, CalDAV, WebDAV, MAPI and others. The Session Border Controller ensures correct operation through NAT devices. The LDAP server included with CGP can also be used by other applications. It is possible to synchronize data with BlackBerry using AirSync (license for each device must be purchased separately). The mailing list manager allows you to automate the newsletter with the ability for the user to subscribe independently. The newsletter is created by the administrator and subsequently managed by one of the server users.

Users can connect through any client program that supports these protocols or a localized web interface. Moreover, the web interface is very easy to configure in such a way that it takes the form of a regular email client (so that users are less confused). It is also possible to use a simplified interface to save traffic when working with PDAs and access via the WAP protocol from mobile phones. You can call a user for a VoIP conversation with one click from the web client or address book. The administrator in the settings sets the functions available to the user - sorting and forwarding mail, an answering machine, downloading letters from external POP3 mailboxes, a list of contacts, tasks and a calendar.

Settings allow the user to open access to his mailbox or individual folders to other server users. This is useful when an organization needs to set up a business account for customer communications that is used by multiple people.

One server can serve several domains. Cluster nodes are capable of processing only a certain type of traffic (for example, by region); SIP Farm technology is used to distribute requests. The solution is easily scalable to any size. By the way, the IP telephony network of the SIPNET operator is built on CommuniGate Pro.

User authentication is possible using an internal database, Active Directory or an external program, including client certificates. In the settings, you can specify IP addresses from which client connections are allowed or denied. All information stored on the server and transmitted between the client and server can be encrypted using SSL, TLS, S/MIME and other technologies.

Open APIs simplify integration with billing and management systems. Plugin support allows you to connect third-party solutions to filter spam and viruses. Currently, integration with solutions from Kaspersky, Sophos, McAfee, MailShell, Cloudmark is supported.

Standard security measures are also implemented - checking the sender's return address, DNSBL (RBL) support, prohibiting the receipt of mail from certain IP addresses and networks, checking a specific line in the header or body of the letter. Installation on any OS is simple; in fact, you just need to unpack the archive and start the server. All settings for the server, domains and accounts are made using the web interface (works on port 8010, after starting you need to connect to it within ten minutes and set the administrator password). The rights system allows you to delegate domain administration to other users, specifying only those functions that they really need.

Currently, several versions of the server are available, differing in licenses. The Community Edition is offered free of charge, in which five active accounts are active; the Corporate Edition and Service Provider with additional functions are offered for a fee.

WARNING

After starting CommuniGate Pro for the first time, you must connect to port 8010 within ten minutes and set the administrator password.

Conclusion

Deploying a mail server using the solutions described is not so difficult; depending on the experience of the administrator and the number of settings, it will take half an hour to launch. Which specific decision to choose is up to you. For a medium-sized organization, iRedMail, Axigen, and Rumble are great options; in the case where the company consists of several geographically remote offices, you should take a closer look at Axigen, IndiMail and CommuniGate Pro. The latter also provides VoIP.