Get one today for enhanced security and privacy
by Milan Stanojevic
Milan has been enthusiastic about technology ever since his childhood days, and this led him to take interest in all PC-related technologies. He’s a PC enthusiast and he… read more
Updated on
- Mail servers have become quite popular of late, owing to the increased awareness around cyber security.
- These eliminate the role of third parties, thereby enhancing privacy and security.
- We did the hard work and now present the best free mail servers for Windows you can start using today.
A mail or email server is simply a virtual mailman or post office through which the emails are sent on their way to the intended single or multiple recipients. And you may often need a mail server for Windows, preferably a free one.
These also run into issues, for instance, the Email server does not support secure connection errors. So, you must go with a reliable and, if available, open-source mail server. Let’s learn about these and walk you through the best available Windows mail server.
How do I create a free email server?
Setting up a mail server is easier than one would imagine. Here are a few things you will need to set it up:
- A computer with an OS installed: The first item on the list is a computer, which could be a laptop or desktop, with decent storage and a fast enough processor. If needed, make the relevant changes to boost the PC’s performance beforehand.
- Domain name: You will also need a domain name to set up the email addresses.
- Stable Internet: A stable connection is another requirement for a reliable and effective email server. If the Internet keeps disconnecting or the speed is slow, you may encounter issues soon.
- Service to create the email server: This is the most vital part and the subject of our guide. You will need software to create the server, preferably with advanced features like spam filter and antivirus protection.
What is the best free Windows mail server?
hMail Server – Built-in antispam features
The hMailServer is an open-source free mail server for the operating system used by ISPs, companies, governments, and schools, among others across the globe.
It supports common protocols such as IMAP, SMTP, and POP3, with easy integration into many webmail systems and flexible score-based spam protection. Besides, it works with your antivirus to scan incoming and outgoing emails.
Features include an available source code for anyone to read or extend, built-in antispam features like SPF and SURBL, and integration with third-party antispam systems like SpamAssassin and ASSP.
Also, hMailServer t can be used with any webmail system that supports IMAP and SMTP, like RoundCube and SquirrelMail.
⇒ Get hMailServer
Mail Enable – Advanced AJAX webmail client for flexibility
To use this free mail server for Windows, you must get the Standard Edition, which you can use on unlimited domains and users.
How we test, review and rate?
We have worked for the past 6 months on building a new review system on how we produce content. Using it, we have subsequently redone most of our articles to provide actual hands-on expertise on the guides we made.
For more details you can read how we test, review, and rate at WindowsReport.
It provides robust IMAP, POP3, Webmail, and SMTP services. It is simple and easy to install with powerful administration software to get your mail server up and running quickly.
The Standard edition may be free, but it contains no spyware or adware, and you can use it for personal or commercial purposes without any time or user restrictions.
Features include an advanced AJAX webmail client for flexibility, personal calendaring, contacts, tasks, folders, auto signatures, and more. You also get stable and functional support for unlimited users and domains on POP and SMTP mail services.
Popular features such as scheduling tasks and meetings, sending invitations, managing projects, out-of-office start/end autoresponder, security measures to protect against unauthorized access, and control panel integration are also available.
Moreover, if you send YouTube video links, your recipients can click and play the video within the message body. Webmail also allows interactive inline streaming of audio MP3 files.
⇒ Get Mail Enable
Zimbra – Innovative messaging experience
This is a pretty cool name for a mail server. Zimbra is a solution built for the cloud, public and private, providing enterprise-class email, calendar, and collaboration services.
It offers the most innovative messaging experience by connecting end users to the information and activity in their personal clouds.
Features include messaging and collaboration, which you can do anywhere on a connected device with IMAP/POP, integration with external directories for authentication, and simplified administration.
Besides, there is antispam and antivirus functionality, synchronization to any device with a rich browser-based experience, and flexible deployment.
Zimbra is available for desktop clients on Windows 10 and other operating systems. It aggregates Gmail, Yahoo!, Mail, Hotmail, and other POP/IMAP accounts while syncing with your address book and calendar.
⇒ Get Zimbra
Apache James – Also used as a Mail Transfer Agent
James is an abbreviation for Java Apache Mail Enterprise Server. This free mail server for Windows 10 has a modular architecture based on a rich set of modern and efficient components for a complete, stable, secure, and extendable server running on JVM.
You can create your solution for email treatment by assembling the components you need and then custom-filtering them using the James Mailet container. It is portable, running on 100 percent pure Java (6 upwards) on the JVM.
Features include email protocols such as SMTP, POP3, IMAP, etc. The Mailet container is independent, extensible, and pluggable. Also, there’s storage API (Mailbox, Search, and User) and storage implementations.
Apache James, the free SMTP server for Windows 10, can also be used as a Mail Transfer Agent when you enable only SMTP or as an IMAP mail delivery agent. It is a living open-source project, meaning that any function not already available can be developed.
⇒ Get Apache James
Axigen Free Email Server – Address book integration
Axigen is an email and calendar server that you can for free for up to 5 users. The platform supports fast and secure email transfer, in addition to other useful features such as address book integration, contacts import and export, customizable rules and filters, etc.
If you want to use this platform for business purposes, you can do that too.
There are plenty of business and collaboration features that allow you to efficiently manage your calendar, tasks, and notes, share files and folders or give your personal assistant the right to send emails in your name.
⇒ Get Axigen Free Email Server
That’s it! These were the best free email server for Windows, easily configurable and simple. So, get one today!
If you are also concerned about security on the web, check the best browsers that identify online threats.
Do share your thoughts and let us know your pick from the software listed above.
Привет! Меня зовут Максим Кульгин, я основатель clickfraud.ru. Мы занимаемся защитой от скликивания рекламы «Яндекс.Директ». Немногие знают, что совсем скоро почта Яндекс станет платной для бизнеса. «Макс, нельзя делать свой почтовый сервер — будешь в спаме! Надо пользоваться готовыми сервисами!» — говорили мне. И что? Вот как всё было и чем закончилось…
Подготовил для вас довольно большое и подробное описание как сделать свой почтовый сервер, чтобы слать сколько угодно писем (рассылок и транзакционных), никому не платить, ни от кого не зависеть и это будет на 99.99% бесплатно. Никто вас не спросит откуда у вас база, как вы ее собрали и т.п. (я не пропагандирую спам).
Да, мы сами сейчас шлем не очень много писем (~500-600 в сутки транзакционных сообщений на все почтовые сервисы, и регулярные ежемесячные рассылки где-то на ~35 000 подписчиков). Доставляемость находится в пределах 98-100%. В конце статьи, для самых нетерпеливых :), привел скрины из Postmaster от Gmail и mail.ru в качестве доказательств. Не пугайтесь сложных терминов spf, dkim, dmarc — все это делается один раз и … забываете.
Кстати, один раз нас взламывали и наш WordPress послал ~50 000 писем на восстановление пароля (такую атаку мы не учли). В итоге в Gmail наши письма стали попадать в СПАМ. Что мы сделали? Написали подробное письмо в smaphouse с разъяснениями проблемы и через ~3 недели ситуация выправилась. Это я оппонирую к возможным аргументам, что если вы один раз «загадили» свой домен и IP-адрес почтового сервера, то ситуация тупиковая. Нет, наш опыт говорит о другом.
Ещё я веду Телеграм-канал «Русский ИТ бизнес», где без прикрас, и очень честно рассказываю об изнанке Российского ИТ-бизнеса, чтобы иллюзий не оставалось, если решитесь «войти в ИТ».
Подпишитесь, может быть будет интересно
Статья может показаться сложной, но на самом деле, если вы чуть-чуть углубитесь в вопрос, прочтете это руководство и еще поищите статьи в Интернете, то вы с вероятностью 99% сделаете свой почтовый сервер и забудете навсегда о платных альтернативах (после начала СВО их стало не так уж и много). Вам понадобиться самая дешевая VPS (уложитесь в 300-400 руб. в месяц, у нас серверов не мало, поэтому мы развернули на существующем) и бесплатный hMailServer.
Предвижу вопрос — «Макс, а как делать красивые, mobile ready рассылки, если мы подняли свой почтовый шлюз»? Ребята, никаких проблем. Мы используем прекрасный и 100% бесплатный плагин для WordPress (у нас сайты на WordPress, зачем нам что-то еще?), но на следующей неделе перейдем на платный аналог (40$ стоит, купил и забыл, копейки), который обладает нужным нам функционалом для построения сложных сценариев рассылок (о чем речь — послали рассылку, следующую шлем тем, кто открыл предыдущую, или открыл и куда-то кликнул и т.п.).
Что такое hMailServer?
Если на компьютере установлена операционная система Microsoft Windows (а во всех офисах и на подавляющем большинстве домашних ПК это так) , то когда заходит речь про почтовый сервер, сразу же приходит на ум Microsoft Exchange. А ведь есть и великолепная бесплатная альтернатива с открытым исходным кодом!
hMailServer — это бесплатный почтовый сервер для организаций, предприятий и даже обычных людей. Он легок в установке, использовании, не требует специальных знаний и специфического ПО, для него сгодится любой компьютер с Windows на борту.
Разработка hMailServer началась в 2002 году Мартином Кнафве. За годы он стал одним из самых популярных почтовых серверов для Windows.
В настоящий момент дальнейшая разработка hMailServer прекращена. Но не спешите удивляться! Все необходимые обновления безопасности выходят до сих пор. Его продолжают рекомендовать и скачивать. Он совместим со всеми современными системами.
Технологии, на основе которых работает hMailServer, не меняются, а замороженный функционал является скорее достоинством, нежели недостатком.
Главные компоненты hMailServer включают в себя:
- простой установщик;
- конфигуратор;
- встроенные средства безопасности;
- поддержка SSL-сертификатов;
- интеграция со сканерами вирусов;
- черные списки электронной почты;
- поисковые системы SPF/MX;
- интеграция с другим ПО через интерфейсы COM;
- много другое.
Позже мы остановимся на некоторых из этих функций.
Все необходимые шаги, в том числе и связанные со сложностями получения сертификатов в современных условиях, в статье описаны и опробованы на практике.
Помимо локальных настроек потребуется небольшая настройка записей DNS — иначе другие почтовые серверы не будут знать куда именно слать письма. Об этом тоже поговорим.
Подготовка к установке
Предупреждение о том, что программа больше не разрабатывается — игнорируем.
Для работы сервера не требуется ничего сверх обычного современного компьютера. Обычно hMailServer использует менее 100 Мб оперативной памяти, а потребляемые ресурсы сильно зависят от количества пользователей.
Можно предположить, что для подавляющего большинства случаев будет достаточно следующей конфигурации:
- 4 Гб оперативной памяти;
- 2 процессорных ядра.
Если сервер предназначается для обслуживания десятков тысяч пользователей, то простым увеличением памяти всё равно не обойтись. Но мы же не разорять Яндекс собрались, а всего лишь поднять почтовый сервер для своего предприятия — в этом случае о системных ресурсах можно сильно не переживать.
Поддерживаются все версии Microsoft Server (вплоть до версии 2003 года) и все версии Microsoft Windows, начиная с «десятки» и заканчивая XP с третьим пакетом обновлений. Самые новые версии Microsoft Server не перечислены в списке на официальном сайте, но их пользователи не сталкиваются ни с какими трудностями, что ожидаемо.
hMailServer создавался как простая программа «скачал и работай», поэтому имеет интегрированную облегченную версию MSSQL. Если по каким-либо причинам такая база данных не устраивает, то можно использовать любую из следующих:
- MySQL 4 and MySQL 5 (or Maria DB)
- Microsoft SQL Server 2000, 2005, 2008, 2012 and 2016 (including Express, Standard and Enterprise edition)
- PostgreSQL 8
Аналогично можно предположить, что не возникнет никакой несовместимости, если задействовать любой более новый MSSQL Server.
Последнее, что нужно учесть — hMailServer создан на основе «. NET Framework 2.0». Новые версии .NET имеют обратную совместимость с предыдущими версиями, поэтому любая новая версия прекрасно сгодится.
Установить «. NET Framework» можно многими способами, в том числе из командной строки. Для этого нужно запустить PowerShell с привилегиями администратора: щелкнуть правой кнопкой мыши на меню «Пуск» и выбрать «Windows PowerSwell (Admin)». Далее в открывшемся окне ввести:
Install-WindowsFeature Net-Framework-Core
Установится свежая версия.
Небольшая вводная информация для тех, кто вообще никогда не поднимал своего почтового сервера. Для работы понадобится:
- доменное имя для почты, которое можно купить у регистраторов доменных имен — это та часть почтового адреса, которая стоит после «@»;
- оборудование, подключенное к интернету (и, соответственно, имеющее IP-адрес) , которое дается в аренду хостинг-провайдерами.
Эти услуги можно покупать как раздельно, так и вместе «за раз», поскольку многие хостинг-провайдеры одновременно являются и аккредитованными регистраторами доменных имен.
Поскольку эта статья информационная, а не рекламная, то никаких ссылок давать не будем. Всё необходимое для понимания и использования — в статье ниже. Когда же придет время действовать, то поисковый запрос «регистрация доменного имени» или «хостинг провайдер» покажет все топовые конкурирующие предложения.
Настройки DNS
Как было сказано выше, есть несколько настроек DNS, нужных для правильной работы сервера.
DNS — Domain Name Service, служба доменных имен — глобальная адресная книга сети Интернет, продублированная на множестве специальных серверов. Именно к ней в первую очередь обращаются все программы, которые хотят установить соединение. Другие почтовые серверы, которые захотят посылать почту на наш почтовый сервер — не исключение.
Настройки DNS, как правило, производятся через веб-интерфейс провайдера, предоставившего доменное имя. Оформление страниц может отличаться, но суть одна: мы работаем с так называемыми ресурсными записями DNS, которые имеют стандартизированные названия. Содержание записей тоже стандартизировано. Ничего сложного в этом нет.
Самая главная запись — «A» (от англ. «address») , задающая соответствие между доменным именем и IP-адресом. Одному доменному имени может соответствовать несколько IP-адресов. Но это сложный случай, такая конфигурация используется для автоматической балансировки нагрузки. Поскольку у нас физически сервер только один, то IP-адрес тоже будет один.
Также нам понадобится запись «MX» (от англ, «mail exchange») , которая сообщает куда и как доставлять почту, направленную по указанному домену получателя. MX-записей может быть задано несколько (тоже для балансировки нагрузки) .
Ещё одна ресурсная запись, которую рекомендуется указывать — это «PTR» (от англ. «pointer») , которую ещё называют «обратной записью». Она задает доменное имя для IP-адреса. То есть, её действие является обратным для ресурсной записи «A». Обратите внимание: настраивать эту запись нужно не у провайдера, предоставившего доменное имя, а у хостера, который предоставил IP-адрес!
Без записи PTR принимающий почту сервер не сможет убедиться в том, что отправитель (на уровне доменного имени) — именно тот, за кого себя выдает. Если запись PTR не задана или расходится с тем, что показывает запись «A» — письма гарантированно улетают в спам.
«Лучше один раз увидеть, чем сто раз услышать». Специальная сетевая утилита «dig» идеально подходит для мониторинга записей DNS. Вот примеры с нашей почтой:
Настройка межсетевого экрана
Специальные действия с межсетевыми экранами требуются не всегда. Выбор нужного профиля, как правило, уже несет в себе необходимые и правильные настройки.
Межсетевой экран не должен блокировать порты, используемые почтовым сервером. Мы исходим из того, что будет использоваться только безопасный SSL-трафик, а потому для IP-адреса, используемого нашим почтовым сервером, следующие порты не должны блокироваться межсетевым экраном:
- 465 (SMTP SSL/TLS)
- 995 (POP3 SSL/TLS)
- 993 (IMAP SSL/TLS)
Поскольку настройку будем производить поэтапно, то традиционные порты, использовавшиеся в эпоху небезопасных соединений для работы почтового сервиса тоже могут потребоваться:
- 25 (SMTP)
- 587 (SMTP Send)
- 110 (POP3)
- 143 (IMAP)
Блокировать в дальнейшем их или нет — вопрос на усмотрение пользователя.
Установка
Итак, установочный файл по ссылке, приведенной в предыдущем разделе скачан. Двойной щелчок мышью на скачанном файле setup. exe запускает мастер установки.
Нажимаем «Next» и соглашаемся с лицензией.
Если нужно поменять папку, в которую устанавливается hMailServer, то это можно сделать на следующем шаге.
Дальше можно выбрать несколько вариантов установки. Нам понадобится полный, со всеми компонентами.
Далее выбирается база данных, которая будет использоваться. Для большинства подойдет встроенная Microsoft SQL Compat, которая и предлагается по умолчанию.
Один из последних шагов — выбрать подходящее название для пункта из меню «Пуск». Предлагаемое по умолчанию «hMailServer» — кажется самым удачным.
Наконец, нужно задать административный пароль. Он понадобится для дальнейших настроек. Надеюсь, не стоит напоминать, что пароль должен быть сильным и не теряться!
Всё готово к установке. Можно проверить правильно ли заданы параметры на предыдущих этапах.
Установка завершена — ничего сложного. Осталось настроить.
Для дальнейших действий в меню «Пуск» выбираем «hMailServer Administrator».
Продвигаемся дальше и выбираем «Automatically connect on start-up» — «Автоматически подключаться при запуске» — чтобы не возвращаться к этому в будущем. Если hMailServer расположен на удаленном сервере, то нужно указать хост (полное имя домена, FQDN) или IP-адрес, в противном случае — оставляем «localhost».
Нажимаем «Connect» — «Соединиться» — и вводим административный пароль, созданный при установке. Появляется панель администратора.
Теперь все те данные, которые мы узнали у поставщиков услуг интернета — регистратора доменного имени и хостинг-провайдера — нужно занести в hMailServer.
Конечно, нужно учесть, что это «внешние» данные — то есть те, которые видны со стороны Интернета. Если на уровне локальной сети производится трансляция IP-адресов или проброс портов, то в программе нужно указывать данные именно со стороны нашего почтового сервера.
Одно из многих «узких» мест в настройке — задание публичного имени хоста. Для этого в административной панели нужно перейти в раздел «Settings» −> «Protocols» −> «SMTP», вкладка «Delivery of e-mail».
Разные источники по-разному трактуют, что именно должно быть в поле «Local host name». У кого-то работает «localhost», кто-то указывает доменное имя, дальше все спорят почему у кого-то работает, а у кого-то нет.
Почта будет успешно отправляться при любом значении этого поля. Вопрос в другом — это значение используется принимающими серверами для выявления спама.
Правильно задать здесь такое значение, которое не будет выглядеть с точки зрения удаленного сервера несоответствием. Поэтому самое разумное — указать домен, возвращаемый ресурсной записью PTR для внешнего IP-адреса нашего почтового сервера.
Здесь не страшно что-то перепутать. Ничего опасного не произойдет, просто почтовый сервер поначалу не будет работать или будет работать с ошибками, что сразу выяснится на дальнейшем этапе отладки.
Подключение ретранслятора
Есть ещё одна полезная технология в мире электронной почты, которая может пригодиться — это ретранслятор, когда наш сервер отправляет письма не напрямую, а через промежуточный почтовый сервер-посредник.
Такой подход помогает отправлять большие объемы электронной почты, преодолевая различные ограничения на доставку с одного IP-адреса и не допуская ошибочной маркировки писем как спама.
Это отдельный вид сетевого бизнеса — вкладывание денег в инфраструктуру для обработки больших объемов информации. Типичный представитель этого бизнеса — провайдер интернет-услуг (ISP) , и воспользоваться им (точнее, его IP-адресом) для работы с электронной почтой — очень эффективный подход, который значительно улучшит простоту, надежность и доставляемость электронной почты.
Интернет-провайдер на основе MX-записи DNS разберется куда именно должна доставляться электронная почта.
Все необходимые параметры можно указать на той же странице, что и выше.
В разделе «SMTP Relayer» нужно ввести имя хоста, используемый порт и, возможно, данные для аутентификации — всю эту информацию нужно брать у провайдера на страничке с документацией.
Ретранслятор использовать не обязательно. Особенно при относительно небольших объемах рассылки. Более того, почти наверняка за эту услугу придется платить, хоть и не большую сумму. В принципе, пользоваться услугами того же Яндекса для отправки корреспонденции — это по сути то же самое.
Ретранслятор часто оказывается полезен, когда после взятия IP-адреса где-то в облаках, тот попадается «с историей». Подключить ретранслятор намного проще, чем выводить IP-адрес из-под блокировок и черных списков.
Добавление домена и аккаунтов
Настало время указать доменное имя. Для этого на административной панели нужно щелкнуть «Add domain» или же развернуть сворачивающийся список «Domains», а затем щелкнуть кнопку «Add…».
Теперь осталось добавить пользователей — тех, кто будет иметь почтовые ящики на нашем почтовом сервере. Помимо имен можно задать пароли, ограничение размера для сообщений и тому подобное.
Active Directory
Можно упростить администрирование учетных записей и паролей, если объединить hMailServer с локальной Active Directory. Тогда, используя вкладку Active Directory, можно создавать новых пользователей, удалять старых, менять им пароли и так далее.
Active Directory (далее просто «AD») — это своего рода каталог, в котором хранятся данные о различных объектах в сети: компьютерах, серверах, принтерах, сервисах.
В hMailServer есть два сценария по работе с AD.
Первый сценарий — уже создана учетная запись пользователя в hMailServer и теперь её нужно связать с AD. Тогда, нажав на учетную запись пользователя, надо перейти на вкладку «Active Directory», установить соответствующий флажок, ввести домен AD и имя пользователя (SAMAccountName) .
Другой сценарий — добавление существующего пользователя AD в hMailServer. Для этого нужно щелкнуть правой кнопкой мыши на папке «Accounts», щелкнуть «Add AD account», выбрать домен AD и учетную запись пользователя.
Не забывайте нажимать кнопку «Save»!
SSL-сертификат
Пока что все настройки были базовыми. SSL-сертификат в дополнение дает возможность использовать шифрование электронной почты, а также задействовать прочие средства безопасности.
Но здесь теперь всё не так просто, как было раньше.
Сертификат должен быть признан всеми участниками сети, в том числе теми, кому будет адресована почта. Это значит, что сертификат должен быть выдан уполномоченным центром, который известен и отправителю почты и получателю.
Обычные пользователи, как правило, не задумываются над этими техническими особенностями, потому что корневые сертификаты основных удостоверяющих мировых центров — Sectigo, Thawte, Digisert, GeotTrust, RapidSSL и других — уже встроены во все браузеры, почтовые клиенты и прочие приложения, требующие этой технологии.
Казалось бы, нужно выбрать один из них, заплатить небольшую сумму за сертификат, установить его должным образом на сервере — и все проблемы безопасности решены разом.
Но не тут-то было! Многие из удостоверяющих центров прекратили работу с рядом стран по политическим причинам. Мало того, что они перестали продавать новые сертификаты, так они ещё и начали прекращать действия уже имеющихся, из-за чего посетители многих российских сайтов столкнулись с предупреждающей надписью.
Решений видится два: получить либо российский сертификат, либо сертификат одного из тех центров сертификации, кто занимается делом, а не политикой.
Недостаток первого варианта: далеко не все пользователи установили себе корневой сертификат российского министерства со сложным названием, прозванного в народе МинЦифры, а популярные приложения этот корневой сертификат по умолчанию не имеют.
Недостаток второго варианта: непростой поиск и действия по приобретению. Мы преодолели все сложности и выбрали второй вариант — использовали Global Sign.
Какой бы вариант не был использован, для получения сертификата нужно следовать всем инструкциям на сайте удостоверяющего центра. К сертификату должен прилагаться закрытый ключ (private key) .
Важно! hMailServer работает с сертификатами в формате PEM. Если сертификат получен в другом формате, то нужно выполнить преобразование. Например, чтобы преобразовать DER файл (.crt,. cer. der), можно выполнить в терминале следующую команду:
openssl x509 -inform der -in certificate.cer -out certificate.pem
Команда может завершиться с ошибкой. Такое бывает, если сертификат уже находится в формате PEM и нужно лишь сменить расширение файла.
Наконец, чтобы импортировать сертификат нужно перейти в «Settings», затем в «Advanced», выбрать «SSL Certificates» и нажать «Add».
В поле «Name» можно ввести произвольное название, но удобнее (а в дальнейшем и понятнее) использовать содержимое поля «Subject Name» полученного сертификата.
Итак, сертификат добавлен в программу, но этого не достаточно: hMailServer знает, где искать сертификат в системе по имени, а что с ним делать — не понятно. Чтобы сертификат работал, надо связать его с правильными портами. Для этого нужно там же, в разделе «Advanced», перейти в подраздел «TCP/IP ports».
Нужный порт может изначально не отображаться — нужно щелкнуть «Add», чтобы добавить его. После щелчка на кнопке «Add» нужно будет выбрать сертификат из выпадающего списка.
Напоминаем, какие порты какими протоколами используются:
- 587 — SMTP
- 995 — POP3
- 993 — IMAP
Настройка почтовых клиентов
Все современные почтовые клиенты поддерживают протоколы IMAP/POP3/SMTP, включая Microsoft Outlook. Другой популярной альтернативой является Mozilla Thunderbird, которую, в том числе, удобно использовать для проверки корректности работы сервера.
Все дальнейшие настройки Mozilla Thunderbird подтянет с сервера самостоятельно.
Если появляется похожее сообщение (то есть не используется защищенное соединение) — значит что-то напутано с портами и сертификатом.
Можно попробовать послать несколько почтовых сообщений туда-сюда, убедиться, что всё работает, а заодно посмотреть журнал.
Журнал почтового сервера
Кроме того, для отладки сервера будут полезны следующие ресурсы:
- mxtoolbox — для тестирования и отладки настроек, о которых шла речь в статье;
- mail-tester — для проверки «спам-благонадежности».
Результат
Те, кто уже сталкивался с настройкой Microsoft Exchange Server, заметят, что настройка hMailServer несравненно проще. Именно потому он и пользуется такой популярностью!
Нужно только поработать немного с DNS-записями, получить SSL-сертификат и установить программку. Несколько шагов — и почтовый сервер полностью настроен! Если кто делает такое впервые — потребуется всего час или два, причем основное время уйдет на понимание базовых вещей и осмысление интерфейсов, а не на сами манипуляции по настройке.
Рассмотренное в статье — только основа. Мы не затрагивали сложные штуки, которые поддерживает hMailServer:
- интеграция со сторонними службами, такими как RoundCube или SquirrelMail;
- поддержка специальных служб защиты от нежелательной почты;
- встроенное резервное копирование;
- правила и прочее.
Однако, вернемся к полученным результатам.
Кто-то говорил: «Ай-ай-ай! Будете в спаме!» Ну-ка, посмотрим…
«Ты что⁈ Надо пользоваться готовыми решениями! Ай-ай-ай!»
Я, как упрямый Труфальдино из Бергамо (многие, уверен, помнят такой фильм по пьесе Карло Гольдони) — забавный хитрый малый, который несмотря на окружающий скепсис — взял и поднял свой почтовик
Мы ничего не платим за рассылки и письма. Вообще! И в спам не попадаем. Доставляемость писем почти идеальная. Всё работает.
А почему? А потому, что мы не думаем, а делаем! Чего и всем советую :). А если серьезно, спрашивайте в комментариях, если я что-то упустил!
Настраиваем домашний почтовый сервер и уходим с «бесплатной» почты
Время на прочтение
15 мин
Количество просмотров 278K
С каждым годом рекламы в интернете становится все больше, а подают ее с каждым разом все навязчивее. Дошло уже до почты: реклама в интерфейсе почтового ящика выглядит как первое непрочитанное письмо, которое машинально хочется открыть. Я не против рекламы, особенно когда она в тему и не сбивает с толку. Но маскировать её под непрочитанное письмо ‒ это перебор. Чувствуется, что следующим шагом рекламу начнут вставлять прямо в тело письма.
Мы уже привыкли, что наша активность в интернете анализируется для подсовывания релевантной рекламы. Но там нет персональных данных в чистом виде: есть пользователь-1 с такими-то привычками, есть пользователь-2 с другими привычками, пользователь-3, 4, 5 и т.д.
Совсем другое дело почта. Обработка почты ‒ это зачастую обработка персональных данных. Все что вы покупаете ‒ квитанции приходят к вам на почту, какими сервисами вы пользуетесь ‒ регистрационные данные и отчеты приходят к вам на почту, купили билеты в отпуск ‒ все данные о вашей поездке у вас в почте. А почта у вас где?
Проблема в том, что вся почта обрабатывается, плюс нет гарантий, что не будет случаев злоупотребления. А реклама в почте ‒ это просто вишенка на торте. Так что если вы неугомонный параноик, то вам давно пора отказаться от «бесплатной» почты.
Но отказаться не так то просто:
-
Можно завести ящик на другом почтовом сервисе, но там тоже не будет никаких гарантий отсутствия обработки писем.
-
Можно арендовать виртуальный сервер в интернете и настроить его как почтовый сервер, но без физического доступа ваши письма никогда не станут только вашими.
-
Можно сделать почту на каком-нибудь зашифрованном protonmail’e, но по этой же причине он стал так популярен у мошенников, что был заблокирован в этой стране.
В голове остается один вариант ‒ делать почтовый сервер прямо дома. Идея на первый взгляд смешная, но если разобраться, то можно получить довольно интересный результат с некоторыми дополнительными бонусами для всей домашней сети. Что у меня из этого вышло ‒ читайте далее.
Домашний сервер
Очевидно, что для почтового сервера нам нужен комп или его аналог, который будет доступен извне 24/7. Можно было бы посмотреть в сторону чего-нибудь компактного и маломощного типа Raspberry Pi, но т.к. мне нужен задел на будущее для других домашних систем, то я отдал предпочтение полноценному компу. На комп устанавливается гипервизор VMWare ESXi, а на нем уже живут виртуальные машины с необходимыми функциями и в том числе почтовый сервер. Такой подход дает дополнительную гибкость при проведении экспериментов и распределении ресурсов, а в случае чего виртуальные машины можно легко перенести на другое железо. Если нет особых требований к скорости работы, то для компа можно взять обычный HDD, т.к. от разделов подкачки виртуальных машин б/ушный SSD может быстро деградировать. Либо делать виртуальные машины без swap. Либо ставить два диска: основной диск виртуальной машины живет на SSD, а раздел подкачки на HDD. Компьютер я выбрал HP ProDesk 600 G2 SFF с процессором i5-6500: компактный корпус, достаточно низкое энергопотребление и ESXi на него устанавливается как родной. Все это хозяйство в режиме простоя потребляет 25 Вт, под нагрузкой 40-45 Вт. В частных объявлениях такой комп вполне реально найти за вменяемые деньги.
ESXi устанавливается со всеми настройками по умолчанию, затем сетевому интерфейсу присваивается статический IP. Более подробно и с картинками см. здесь.
Связь, электричество, бэкапы
Дома, в отличие от датацентра возможны перебои электричества, поэтому нужен ИБП с батареей на несколько часов работы сервера и роутера. От этого же электричества зависит работа оборудования внутридомового провайдера, поэтому ИБП для домашнего сервера не решает проблему отключения провайдерского оборудования и интернета вместе с электричеством. Получается, что на домашний роутер должно быть заведено два провайдера: основной (например, по витой паре или оптике) и резервный (через LTE модем). В разных роутерах процесс настройки выглядит по разному, но суть не меняется. Для резервного интернет-канала я взял LTE модем Huawei E3372-320. Свисток хорош тем, что есть в свободной продаже в разлоченном виде и он оснащен разъемами для внешних антенн, что в некоторых ситуациях может сильно улучшить качество связи.
Однако, с двумя провайдерами у вас будет два разных серых IP адреса, а почтовому серверу нужно нормальное доменное имя и по хорошему белый IP. Выход из ситуации у меня такой: арендуется виртуальный сервер (VPS) за границей, на нем настраивается VPN-сервер, а на почтовом сервере настраивается туннель до VPS. Кроме того, туннель можно поднять прямо с домашнего роутера (если он умеет) и таким образом ликвидируется сразу два зайца: мы получаем статический белый IP не зависящий от локальных провайдеров, а после тюнинга маршрутизации на роутере ‒ централизованный обход блокировок Роскомпозора для всех устройств домашней сети. Схема получается примерно такая:
Будет не очень весело, если жесткий диск домашнего сервера неожиданно накроется вместе со всей почтой. Поэтому необходимость бэкапов сервера даже не обсуждается. О настройке бэкапов поговорим в конце статьи.
Условные обозначения
В статье будут содержаться примеры конфигурации, в которых вам потребуется заменить некоторые значения на свои:
-
Hostname (имя компьютера) почтового сервера ‒ mail
-
Домен ‒ example.com
-
IP адрес VPS сервера ‒ 1.2.3.4
-
Локальная домашняя сеть 192.168.1.0 с маской /24 (255.255.255.0) и шлюзом 192.168.1.1
-
IP адрес почтового сервера в локальной сети ‒ 192.168.1.3
-
Внутри VPN тунеля IP адрес VPN сервера 192.168.77.1, IP адрес VPN клиента 192.168.77.3
Арендуем VPS, настраиваем VPN сервер
Есть куча разных VPS провайдеров, я выбрал vps2day.com, потому что они не просят персональные данные при регистрации, платить можно криптой, можно выбрать страну, где разместить сервер. Для целей VPN будет достаточно VPS в базовой конфигурации, который обойдется в 5 €/месяц. Сперва я зарегистрировал почтовый ящик на protonmail’e, а затем на него оформил аккаунт в vps2day, закинул крипту и арендовал VPS. В качестве ОС я выбрал Debian 10, через несколько минут после оформления аренды на почту приходит отбойник с IP адресом сервера и учетными данными для SSH подключения.
Логинимся, обновляемся:
apt update && apt upgrade
В качестве решения для VPN я выбрал Wireguard, но для установки на Debian 10 надо добавить его репозиторий в apt:
echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list
apt update
apt install wireguard
Создаем каталог для файлов конфигурации (если его вдруг нет), назначаем права доступа туда, переходим в него и генерируем закрытый и открытый ключи:
mkdir /etc/wireguard
chmod 700 /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
На выходе получим два файла: privatekey
с закрытым ключом и publickey
с открытым ключом. Создаем файл конфигурации /etc/wireguard/wg0.conf
вида:
[Interface]
PrivateKey = сюда вставляем значение ключа из файла privatekey
Address = 192.168.77.1/24
ListenPort = 51820
MTU = 1380
Чуть позже мы дополним этот файл, а пока едем дальше.
Регистрация домена, настройка DNS
При регистрации домена в зоне .RU нужно предоставлять паспортные данные, а делать этого не очень хочется… В международной зоне список необходимых для регистрации данных скромнее. Для регистрации можно указать все тот же ящик с protonmail’a. В качестве примера представим, что мы зарегистрировали домен example.com.
В редакторе DNS зоны нужно добавить «А» запись с именем mail и с указанием на внешний IP нашего почтового сервера, коим будет являться арендованный VPS:
Запись «MX» с приоритетом 10 и указанием на mail.example.com:
Запись «TXT» с SPF v=spf1 ip4:1.2.3.4 mx ~all
:
Запись «TXT» DMARC v=DMARC1; p=reject; adkim=s; aspf=s; pct=100;
:
Создание виртуальной машины
На ESXi создаем виртуальную машину (ВМ). Диск почтового сервера будем шифровать, поэтому нужно учесть один нюанс. По умолчанию гипервизор создает swap файл, равный размеру оперативной памяти виртуальной машины в каталоге ВМ. Таким образом есть вероятность, что ключ шифрования диска, хранимый в памяти ВМ во время работы окажется в swap файле на гипервизоре, что совсем не здорово. Чтобы этого не случилось, в настройках виртуальной машины нужно зарезервировать всю отведенную под ВМ оперативную память, тогда swap файл будет нулевой длины.
Установка системы и начальная конфигурация
В гостевой ОС вполне можно отказаться от раздела подкачки, особенно если назначить ВМ достаточное количество оперативки, а datastore гипервизора находится на SSD. Я взял Debian 10, процесс установки полностью стандартный за исключением разметки диска. Имя сервера задаем mail, домен example.com. Система ставится в минимальной конфигурации. В разметке дисков я сделал первый раздел под /boot и второй раздел с шифрованием:
После установки системы я делаю несколько базовых вещей. Удаляю созданного при установке пользователя командой deluser <username> --remove-home
.
Задаю статический адрес, если это не было сделано во время установки. Для этого правим файл /etc/network/interfaces
. Обратите внимание, что сетевой адаптер вашего сервера может называться по другому, в моем примере ens192
. Секция файла с настройкой сетевого адаптера должна получиться такой:
allow-hotplug ens192
iface ens192 inet static
address 192.168.1.3/24
gateway 192.168.1.1
Для применения изменений выполняем команду (не забываем здесь заменить название сетевого интерфейса на свое):
ifdown ens192 && ifup ens192
Чтобы не углубляться в настройку домашних роутеров, VPN туннель мы будем делать сразу с почтового сервера до VPS и завернем туда весь трафик. Поэтому имеет смысл поменять DNS сервера на публичные. Для этого правим файл /etc/resolv.conf
, конечный вид которого примет вид:
nameserver 1.1.1.1
nameserver 1.0.0.1
IPv6 я тоже отключаю, для этого в конец файла /etc/sysctl.conf
добавляю строку:
net.ipv6.conf.all.disable_ipv6 = 1
Чтобы параметр применился выполняем команду:
sysctl -p
Проверить, отключился ли IPv6 довольно легко. Для этого нужно просмотреть вывод нижеследующей команды на наличие ipv6 адресов:
ip a
Устанавливаем ssh и wget:
apt install ssh wget
Включаю логин по паролю для root по SSH, для этого в файле /etc/ssh/sshd_config
добавляем строку PermitRootLogin yes
. Применяем изменения:
service ssh restart
Коннектимся к серверу по ssh и едем дальше.
Настройка VPN подключения
Устанавливаем wireguard на почтовом сервере так же как это делали на VPS несколькими шагами выше:
echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list
apt update
apt install wireguard
mkdir /etc/wireguard
chmod 700 /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
Создаем файл конфигурации /etc/wireguard/wg0.conf
следующего содержания:
[Interface]
PrivateKey = значение ключа из файла privatekey
Address = 192.168.77.3/32
MTU = 1380
[Peer]
PublicKey = значение ключа из файла publickey с VPS сервера
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820
PersistentKeepalive = 20
Теперь идем по SSH на VPS сервер и в файл конфигурации /etc/wireguard/wg0.conf
добавляем:
# mail server
[Peer]
PublicKey = значение ключа из файла publickey с почтового сервера
AllowedIPs = 192.168.77.3/32
На VPS сервере в файл /etc/sysctl.conf
добавляем строку net.ipv4.ip_forward = 1
, чтобы разрешить форвардинг трафика, а чтобы применить эту настройку без перезагрузки, даем команду sysctl -w net.ipv4.ip_forward = 1
.
На VPS создаем небольшой скрипт фаерволла, который будет срабатывать при каждом включении сетевого адаптера. Создаем файл /etc/network/if-up.d/firewall
, содержимое файла спрятал под спойлер.
/etc/network/if-up.d/firewall
#! /bin/sh
EXT_IP="1.2.3.4"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Разрешаем пинги в разумных пределах
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT --match limit --limit 5/second
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT --match limit --limit 5/second
# Разрешаем SSH
iptables -A INPUT -d $EXT_IP -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -d 192.168.77.1 -p tcp --dport 22 -j ACCEPT
# Established connections
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# DNS
iptables -A INPUT -i eth0 -p udp -d $EXT_IP --sport 53 -j ACCEPT
# Wireguard
iptables -A INPUT -i eth0 -d $EXT_IP -p udp --dport 51820 -j ACCEPT
iptables -A FORWARD -i wg0 -j ACCEPT
iptables -A FORWARD -o wg0 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Выход в интернет для почтового сервера через VPS
iptables -t nat -A POSTROUTING -s 192.168.77.3 -j SNAT --to-source $EXT_IP
# Проброс портов к почтовому серверу через туннель
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 443 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 25 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 587 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 143 -j DNAT --to-destination 192.168.77.3
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 993 -j DNAT --to-destination 192.168.77.3
Не забываем сделать файл исполняемым командой chmod +x /etc/network/if-up.d/firewall
На VPS сервере запускаем wireguard:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Возвращаемся на почтовый сервер и запускаем wireguard там:
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0
Состояние подключения можно посмотреть командой wg show
. Если хоть какие-то данные в обоих направления пошли, значит все ОК и можно двигаться дальше:
Настройка почтового сервера
В интернете есть пара отличных гайдов по развертыванию почтового сервера на Debian: e-mail caramel и ispmail. Основная сложность настройки заключается в том, что нужно правильным образом сконфигурировать довольно много файлов и нигде не накосячить. Нужно настроить Apache, PostgreSQL, Postfix, Dovecot, rspamd, sieve, сгенерировать SSL сертификаты и DKIM, выставить права. Со знанием дела весь процесс занимает несколько часов, а у новичков может легко занять пару дней и не факт что все получится с первого раза.
По гайду «e-mail caramel» на выходе получается почтовый сервер с IMAP протоколом для клиентов с обязательным шифрованием STARTTLS и Nextcloud’ом в качестве webmail. Сервер убирает из писем мета-теги User-Agent и Received. Учет почтовых пользователей ведется в БД.
Чтобы не заниматься курением конфигов, а результат был предсказуем ‒ я сделал скрипт, который автоматизирует 90% всего процесса из вышеупомянутого гайда с некоторыми отличиями:
-
Я не хочу ставить на почтовый сервер ресурсоемкий Nextcloud, вместо него я буду использовать Rainloop
-
Подрежем еще несколько мета-тегов: X-Mailer, X-Originating-IP, X-PHP-Originating-Script, Mime-Version. При этом в оригинальном гайде фильтрация конфигурируется в master.cf, а у меня в main.cf
Скрипт устанавливает необходимые пакеты, конфигурирует apache, БД, конфигурирует почтовые службы и на выходе получается практически готовый к употреблению почтовый сервер. При этом я пока не стал включать в скрипт генерирование SSL и DKIM, сделаем это руками чуть ниже.
Скрипт пока не тестировался на корректность работы при многократном запуске. Если почтовый сервер у вас развернут как виртуальная машина, то перед выполнением лучше сделать снапшот ВМ.
Скачиваем и распаковываем скрипт:
wget https://github.com/alexmdv/mailserver-autosetup/archive/main.zip
unzip main.zip
chmod +x -R ./mailserver-autosetup-main
cd ./mailserver-autosetup-main
Всего в каталоге 3 файла:
-
mailserver-setup.sh
— основной скрипт конфигурирования сервера -
mailuser-addnew.sh
— скрипт создания почтового юзера -
mailuser-setpass.sh
— скрипт смены пароля для существующего почтового юзера
Запускаем mailserver-setup.sh
. Скрипт попросит ввести следующие данные: имя хоста почтового сервера (в этом гайде это просто mail), имя домена, который был ранее зарегистрирован (например, example.com), IP адрес почтового сервера в локальной сети. Имя хоста + домен как раз образуют полное имя mail.example.com. По завершению работы скрипта почтовые сервисы остаются в выключенном состоянии, т.к. перед запуском надо сгенерировать SSL сертификаты и DKIM. Так же по завершению будет отображен админский пароль от БД. Этот пароль нужно вставить в скрипты mailuser-addnew.sh
и mailuser-setpass.sh
вместо слова PASSWORD, см в файлах вторую строку:
#!/bin/bash
pgadmpass="PASSWORD"
Генерирование сертификатов, завершение настройки
Генерируем SSL сертификат командой. Не забываем заменить example.com на свой домен:
certbot certonly --apache --agree-tos --email admin@example.com --no-eff-email --domain mail.example.com
Генерируем DKIM. В команде ниже вместе example.com ‒ ваш домен, а вместо 20210121 можно взять текущую дату (ггггммдд):
rspamadm dkim_keygen -b 2048 -d example.com -s 20210121 -k /var/lib/rspamd/dkim/example.com.20210121.key
Результатом выполнения команды будет такой текст:
20210121._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAumOhUcY3anZV4tGF1+VsYDD9bTZ0rqiFCm8FPdDHVB0U+ZPfZ2Cxf+x+jIFYXfO/jWEoAw2uYFz3Mt1ImvRQzU9oMx0t/0HtMKS4m3AhOBM5SkkhvoAaJkoIt3gTQ4KQyiBsZemihAw6V/gsex8K6M76m4WkbT92+tg192EGXBUDo0k7kk1rDOld0G9X2P0IxkVfqKqfwg+fI+0Im"
"AOFC1gBCIm18XPEGZA2oOoNbkWO95bD8Rj20yv8639bMA27+B08v4/aPXQb9HZLEwpsz8Qa/WgEZFGJzd6kUaYWHTfMmbgBXnET5N+tjXGvkjtnLbx25ru/PZTeckGjE/komQIDAQAB"
) ;
В файл /etc/rspamd/dkim_selectors.map
нужно добавить дату, чтобы получилось примерно так:
example.com 20210121
Идем в редактор DNS зоны у регистратора, добавляем запись «TXT» с именем 20210121._domainkey
и значением v=DKIM1; k=rsa; p=...
Дата в имени у вас будет своя, параметры перечисляются без двойных кавычек. Примерно так:
Тут есть нюанс. По умолчанию длина ТХТ записи может быть до 255 символов, а т.к. мы сгенерировали 2048 битный DKIM ключ, то его длина выходит за это ограничение и если вы внимательно посмотрите на результат генерации ключа, параметр p
разбит на два, каждый из которых в своих двойных кавычках. Если регистратор поддерживает ТХТ записи большей длины, то две части можно просто схлопнуть, убрав кавычки. У GoDaddy, например, максимальная длина TXT записи 1024 символа. А если регистратор не поддерживает больше 255 символов, то ключ записывается в две ТХТ записи. Или можно сгенерировать более короткий ключ на 1024 бита.
Последнее что нужно сделать ‒ поправить файл /etc/postfix/master.cf
. Необходимо раскомментировать строку:
#submission inet n - - - - smtpd
И 4 вложенных параметра, начинающихся на «-o». Двойной пробел перед ними нужно сохранить. Последний параметр, возможно нужно будет просто дописать. На всякий случай в архиве со скриптом приложен готовый к употреблению файл master.cf. Должно получиться так:
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o cleanup_service_name=header_cleanup
Перезагружаем сервер.
Теперь заведем первый почтовый ящик. Для этого нужно воспользоваться скриптом mailuser-addnew.sh. Нужно будет ввести короткое имя (слово до @example.com), доменное имя (сам example.com) и пароль два раза. После этого можно попробовать настроить любой почтовый клиент используя созданную учетную запись.
В качестве примера пусть будет oleg@example.com. Для настройки почтового клиента набор параметров будет таким: почтовый адрес oleg@example.com, имя пользователя для IMAP и для SMTP так же oleg@example.com, сервер входящей почты IMAP mail.example.com, исходящей почты тоже mail.example.com, способ подключения везде STARTTLS.
Для проверки корректности настройки DKIM и SPF, можно воспользоваться ресурсом https://dkimvalidator.com, отправив туда тестовое письмо и посмотрев отчет. Все проверки должны быть в статусе pass (пройдено).
Устанавливаем Rainloop webmail
Все необходимые php модули для Rainloop уже были установлены скриптом. Скачиваем актуальную версию проекта, распаковываем, задаем права, включаем vhost на веб-сервере:
wget http://www.rainloop.net/repository/webmail/rainloop-community-latest.zip
unzip rainloop-community-latest.zip -d /var/www/webmail
cd /var/www/webmail
chmod 644 .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chown -R www-data:www-data .
a2ensite webmail
service apache2 reload
Логинимся в админку rainloop по адресу https://mail.example.com/?admin
с логином admin
и паролем 12345
. Пароль естественно надо будет сменить, это делается в разделе Security.
Далее добавляем наш почтовый сервер. Идем в раздел Domains, отключаем все прочие почтовые сервера и жмем по кнопке Add Domain:
Вводим параметры нашего домена и жмем Add:
Дополнительно в закладке Login можно так же указать домен:
Теперь можно пробовать заходить в webmail https://mail.example.com
используя короткое имя пользователя (без @example.com):
Интерфейс выглядит лаконично, работает быстро, есть возможность настроить внешний вид под себя.
В качестве небольшого тюнинга безопасности Apache добавим пару строк в файл /etc/apache2/apache2.conf
. Это скроет данные о версии веб-сервера:
ServerSignature Off
ServerTokens Prod
Для применения изменений перезагрузим Apache командой service apache2 reload
.
phpPgAdmin
В БД mail_server есть три основные таблицы: alias, sharedmail_boxes, users. Все пользователи с хешами паролей хранятся в users. С помощью таблицы alias можно сделать псевдонимы к уже существующим почтовым ящикам, а с помощью таблицы shared_mailboxes можно сделать доступ к определенным ящикам для нескольких людей. Вход в phpPgAdmin по адресу http://локальный-ip-адрес-сервера/phppgadmin с логином postgres и паролем, который был сгенерирован скриптом.
Если нет нужды ковырять таблицы, то можно отключить сайт с phpPgAdmin вообще:
a2dissite lanhost
service apache2 reload
Бэкапы
Так как почтовый сервер я делал для себя и очень ограниченного круга людей, то много пространства серверу не нужно, емкость всего диска 20 Гб. Схема резервного копирования такая: один раз бэкапится виртуальная машина почтового сервера целиком, чтобы случае чего не настраивать сервер заново. А во вне делается бэкап почтового каталога. Естественно все бэкапы шифруем. Для копий каталога отлично подойдет VPS, у которого целых 25 Гб пространства, бэкапить буду с помощью restic. Но прежде надо настроить ssh подключение до VPS по сертификату.
На почтовом сервере генерируем RSA ключ, на все вопросы мастера просто жмем Enter:
ssh-keygen -t rsa -b 4096
Копируем открытый ключ на VPS:
cat ~/.ssh/id_rsa.pub | ssh root@192.168.77.1 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Устанавливаем Restic
apt install restic
Создаем репозиторий (копии будут храниться на VPS в каталоге /mnt/mserv-bkp
):
restic -r sftp:192.168.77.1:/mnt/mserv-bkp init
Выполнение команды может занять несколько минут, в конце попросят придумать пароль для шифрования репозитория. Чтобы автоматизировать процесс создания резервных копий, создадим файл с переменными /root/.restic
следующего содержания:
export RESTIC_REPOSITORY="sftp:192.168.77.1:/mnt/mserv-bkp"
export RESTIC_PASSWORD="Пароль придуманный на прошлом шаге"
Подхватываем файлик:
source /root/.restic
Попробуем выполнить резервное копирование почтового каталога:
restic backup /var/vmail
Проверяем, что в репозитории что-то появилось:
restic snapshots
Если есть наш только что созданный снапшот, то двигаемся дальше. Создаем файл /etc/root/restic
с содержимым:
#!/bin/bash
source /root/.restic
restic backup /var/vmail
Делаем его исполняемым:
chmod +x /root/restic
И добавляем в /etc/crontab
на запуск раз в сутки:
0 1 * * * root /root/restic
Заключение
Теперь настройку почтового сервера можно считать полностью завершенной.
Как видно, владение своим почтовым сервером стоит некоторых денег. Цена складывается из оплаты регистрации домена, аренды VPS, оплаты второго провайдера дома и в конце концов электричества. В моем случае получается в районе 950 ₽ в месяц за всё. С другой стороны резервный интернет канал и VPN будут полезны для всей домашней сети, но об этом мы поговорим в следующий раз.
Спасибо, что дочитали. Комментарии, вопросы, замечания и пожелания приветствуются!
Оригинал статьи в моем блоге.
Советуем обратить внимание
Эта программа не только чистит систему
Ускоряет систему, реестр и доступ в Интернет. Оптимизирует, чистит и исправляет все проблемы с ПК в 1 клик. Выявляет и удаляет шпионские и рекламные модули.
Программа — победитель многих конкурсов… Подробнее
MDaemon 20.0.3
MDaemon Mail Server — это один из самых мощных почтовых серверов с множеством дополнительных возможностей. Базируется на стандарте SMTP/POP/IMAP с поддержкой всех современных протоколов и хорошей защитой от спама и вирусов….
get_app25 252 | Условно-бесплатная |
Courier Mail Server 3.10
Courier Mail Server — Сервер электронной почты. Компактный, простой в настройке и эксплуатации, многопоточный, содержит Web-сервер…
get_app15 169 | Условно-бесплатная |
hMailServer 5.6.7 Build 2425
hMailServer — простой бесплатный почтовый сервер, поддерживающий протоколы IMAP, SMTP, POP3 и с возможностью интеграции в системы веб-почты. Работает как служба Windows и включает в себя инструменты администрирования и резервного копирования…
get_app2 674 | Бесплатная |
Lotus Notes Repair Toolbox 2.2.7
Lotus Notes Repair Toolbox — программа для анализа и восстановления поврежденных файлов Lotus Notes…
get_app1 045 | Демо версия |
Advanced Direct Remailer 2.36.198
Advanced Direct Remailer (ADR) — многофункциональный почтовый ремайлер, позволяющий доставлять исходящую почту прямо на почтовый сервер получателя в обход сервера провайдера. Эта программа представляет из себя локальный SMTP сервер. Ее удобно использовать…
get_app13 957 | Условно-бесплатная |
Browse free open source Email Servers and projects for Windows below. Use the toggles on the left to filter open source Email Servers by OS, license, language, programming language, and project status.
-
The premier cloud-based TMS software that makes logistics simple with one login for all inbound and outbound transportation management across parcel, LTL, FTL, ocean, and intl air. Seamless integration into your current tech stack (ERP/ WMS/CRM) and highly configurable to your existing workflows. With connections to 300+ carriers, brokers, & marketplaces, getting the best rates and optimizing shipping processes is easy. Trusted by Toshiba, NewEgg, Forever 21, e-commerce, and top automakers.
-
As the largest commercial provider of hosting and support services for the open-source Moodle™ learning platform, we help organizations and institutions deliver great learning experiences without complexities
-
1
PHPMailer
The classic email sending library for PHP
PHPMailer – A full-featured email creation and transfer class for PHP. Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings. SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports. Validates email addresses automatically. Many PHP developers need to send email from their code. The only PHP function that supports this directly is mail(). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments. Formatting email correctly is surprisingly difficult. There are myriad overlapping (and conflicting) standards, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you’ll find online that uses the mail() function directly is just plain wrong, if not unsafe!
Downloads:
219 This WeekLast Update:
See Project
-
2
Acrylic is a local DNS proxy for Windows which improves the performance of your computer by caching the responses coming from your DNS servers and helps you fight unwanted ads through the use of a custom HOSTS file (optimized for handling hundreds of thousands of domain names) with support for wildcards and regular expressions.
When you browse a web page a portion of the loading time is dedicated to name resolution while the rest is dedicated to the transfer of the web page contents. What Acrylic does is to reduce the time dedicated to name resolution for frequently visited addresses closest to zero possible. Furthermore Acrylic’s sliding expiration caching mechanism and DNS silent updates are able to improve the browsing experience independently of the browser.
With Acrylic you can also gracefully overcome downtimes of your DNS servers without disrupting your work, because in that case you will at least be able to connect to your favourite websites and to your email server.Downloads:
588 This WeekLast Update:
See Project
-
3
Mail-in-a-Box
Take back control of your email with this mail server in a box
Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server, a mail server in a box. Mail-in-a-Box lets you become your own mail service provider in a few easy steps. It’s sort of like making your own gmail, but one you control from top to bottom. Technically, Mail-in-a-Box turns a fresh cloud computer into a working mail server. But you don’t need to be a technology expert to set it up. Our goals are to make deploying a good mail server easy, promote decentralization, innovation, and privacy on the web, have automated, auditable, and idempotent configuration, not make a totally unhackable, NSA-proof server, and not make something customizable by power users. Mail-in-a-Box turns a fresh Ubuntu 18.04 LTS 64-bit machine into a working mail server by installing and configuring various components. It is a one-click email appliance. There are no user-configurable setup options. It «just works.»
Downloads:
17 This WeekLast Update:
See Project
-
4
PostfixAdmin is a Web Based Management tool created for Postfix. It is a PHP based application that handles Postfix Style Virtual Domains and Users that are stored in MySQL, PostgreSQL or SQLite
Downloads:
330 This WeekLast Update:
See Project
-
Your single integration to industry leading, secure blockchain infrastructure for web3. Scale with ease through our end-to-end suite of blockchain technology, from dedicated nodes and APIs to easily-accessible staking and liquid staking, MPC tech, and more.
-
5
Modoboa is a mail hosting and management platform including a modern and simplified Web User Interface. It provides useful components such as an administration panel and webmail. Modoboa integrates with well known software such as Postfix or Dovecot. A SQL database (MySQL, PostgreSQL or SQLite) is used as a central point of communication between all components. Modoboa is developed with modularity in mind, expanding it is really easy. Actually, all current features are extensions. It is written in Python 3 and uses the Django, jQuery and Bootstrap frameworks. Follow the evolution of your server traffic thanks to a few builtin graphics: messages distribution per type and average size. Easily use standard protocols like DKIM or DMARC to improve your sender reputation and so make sure your emails will be delivered. Consult your emails everywhere thanks to simple but functional builtin webmail.
Downloads:
3 This WeekLast Update:
See Project
-
6
MailSlurper
Local, web-based mail server application. Slurp mails into oblivion!
MailSlurper is a small SMTP mail server that slurps mail into oblivion! MailSlurper is perfect for individual developers or small teams writing mail-enabled applications that wish to test email functionality without the risk or hassle of installing and configuring a full-blown email server. It’s simple to use! Simply set up MailSlurper, configure your code and/or application server to send mail through the address where MailSlurper is running, and start sending emails! MailSlurper will capture those emails into a database for you to view at your leisure. The following are general instructions for compiling MailSlurper. Your details may vary a bit here and there. The below example is based on a Unix-style system, such as Ubuntu or OSX. Furthermore, for instructional purposes, it is assumed that your GOPATH is set to ~/code/go, and that you have a folder in your source directory called github.com. Your setup may vary.
Downloads:
2 This WeekLast Update:
See Project
-
7
Haraka
A fast, highly extensible, and event driven SMTP server
Haraka is a highly scalable node.js email server with a modular plugin architecture. Haraka can serve thousands of concurrent connections and deliver thousands of messages per second. Haraka and plugins are written in asynchronous JS and are very fast. Haraka has very good spam protection (see plugins) and works well as a filtering MTA. It also works well as a MSA running on port 587 with auth and dkim_sign plugins enabled. Haraka makes no attempt to be a mail store (like Exchange or Postfix/Exim/Qmail), a LDA, nor an IMAP server (like Dovecot or Courier). Haraka is typically used with such systems. Haraka has a scalable outbound mail delivery engine built in. Mail marked as relaying (such as via an auth plugin) is automatically queued for outbound delivery. Haraka’s plugin architecture provides an easily extensible MTA that complements traditional MTAs that excel at managing mail stores but do not have sufficient filtering.
Downloads:
1 This WeekLast Update:
See Project
-
8
Mailu
Insular email distribution — mail server as Docker images
Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to suggestions and external contributions. The project aims at providing people with an easily setup, easily maintained and full-featured mail server while not shipping proprietary software nor unrelated features often found in popular groupware. Security, enforced TLS, DANE, MTA-STS, Letsencrypt!, outgoing DKIM, anti-virus scanner, Snuffleupagus, block malicious attachments. Antispam, auto-learn, greylisting, DMARC and SPF, anti-spoofing. Freedom, all FOSS components, no tracker included.
Downloads:
1 This WeekLast Update:
See Project
-
9
Zentyal Server is an easy to use and affordable Linux server, specially designed to meet the needs of small and medium businesses
Thanks to Zentyal’s Samba integration, Zentyal provides native compatibility with Microsoft Active Directory, allowing you to join Microsoft clients to a domain and manage them easily.
Zentyal Server incorporates all the network services required in a small and medium business environment:
* Directory & Domain Server with native compatibility with Microsoft Active Directory
* Mail Server with ActiveSync and webmail
* Gateway with firewall and proxy
* Infrastructure Server with DNS/DHCP server, Certification Authority and Virtual Private Networks
For more information and download, please access the project’s home page.Downloads:
24 This WeekLast Update:
See Project
-
Whether you want to make it easier to find, book meeting rooms or search and reserve shared desks, Robin empowers office managers and employees alike to make the office work for them, and not the other way around.
-
10
Server bundle of : Apache2 , MySQL , PostgreSQL , OpenSSL , Xmail , SlimFTPd
Software developing triad of : PHP , Perl and Python
+ Apache2TriadCP , PHPmyadmin , PHPPgAdmin , AWStats , UebiMiau , PHPXMail , PHPSFTPd.
All latest stables , all manualsDownloads:
20 This WeekLast Update:
See Project
-
11
YPOPs! is an application which emulates a POP3/SMTP mail server and provides free POP3 and SMTP access to Yahoo! Mail. It does not depend on Yahoo’s POP3/SMTP mail server. You can use a mail client of your choice!
Downloads:
10 This WeekLast Update:
See Project
-
12
Mail Alert Simple Mailer is a simple command-line utility designed for IT administrators for sending e-mail from Microsoft Windows OS. It can be executed from command line, Windows batch file or PowerShell scripts. My main reason for writing this software was to handle events generated by Dell OpenManage Server Administrator (OMSA), APC PowerChute and Windows Events to send hardware status and alerts like temperature alerts, UPS battery status, powerline status and RAID controller alerts from monitoring software. It can be used with any other software where you can configure external application to be executed when specific event occurs.
Mail Alert Simple Mailer supports SSL and STARTTLS protocols, so it is compatible with many free e-mail providers like GMail, Hotmail, etc. Unlike other simple command line tools it supports ISO-8859-1, ISO-8859-2 and UTF-8 code pages for national characters. Mail Alert Simple Mailer encrypts SMTP password in configuration file.Downloads:
16 This WeekLast Update:
See Project
-
13
[antispam] MailCleaner is an anti-spam / anti-virus filter SMTP gateway with user and admin web interfaces, quarantine, multi-domains, multi-templates, multi-languages. Using Bayes, RBLs, Spamassassin, MailScanner, ClamAV. Based on Debian. Enterprise ready.
MailCleaner is an anti spam gateway installed between your mail infrastructure and the Internet.
It includes a complete GNU/Linux OS and a graphical web interface for user and administrative access. It comes in the form of virtual machine templates..
— fully compatible with any SMTP mail server (Exchange, Zimbra, O365,…)
You can install now MailCleaner within the following virtual environments:
qcow2 (KVM, Proxmox, OpenStack, Xen)
ova (OVA, VMware ESXi, VMware Workstation, Fusion)
vhd (Asure, VirtualPC)
vhdx (Hyper-V)
AMI (Amazon)
Dedicate a server to MailCleaner, and you will have a working professional mail filter in less than an hour.Downloads:
8 This WeekLast Update:
See Project
-
14
LocalServer
LocalServer is a Web Server software for windows
LocalServer is a Web Server software for Windows that allows you to make your Computer into a Web Server Locally in which there is the Apache Server, PHP, and MySQL Server, which has been summarized in a single container setup.exe.
The advantages of this software is Free except you do not need to advance other similar software, which is installed by default on your computer, because the Apache Server and MySQL Server will be installed on LocalServer first time on a different port, the Apache server running on port 4008 and MySQL Server running on port 3308.
The latest version has been on the Release of version 1.0.1 that is made on the date of 26-10-2012, which has been running stable on Windows devices with the addition of the mail server that Mercury mail.
Hopefully LocalServer useful for you to use, and congratulations creative with LocalServer
Thank you!Downloads:
9 This WeekLast Update:
See Project
-
15
DKIMproxy is an SMTP-proxy that implements the DKIM and DomainKeys standards, to sign and verify email messages using digital signatures and DNS records. It can be used to add DKIM support to nearly any existing SMTP mail server.
Downloads:
19 This WeekLast Update:
See Project
-
16
Aegis Implicit Mail is a free and open source library which is designed to provide fast and developer friendly API to send emails using SMTP ports.
Binaries are available in the form of NuGet package:
https://www.nuget.org/packages/AIM
Please check http://pki.tools/aim.html as well
AIM Supports :
* None Ssl Mails
* Implicit Ssl Mails
* Explicit Ssl Mails
* Smtp Connection test
* Detect Ssl type of mail server
* Attachments for MIME and S/MIME message.
* In-line attachment and separate file attachment
* All content types and mimes
* SMIME , Signed and Encrypted mails
In an integrated way
Sadly, Microsoft.Net.Mail Ssl Mails does not support Implicit Ssl Mail and it is still used by many servers, including port 465 of Gmail here AIM comes to make a readable and fast alternative to send your smtp mails.
For unicode issues please refer to https://sourceforge.net/p/netimplicitssl/tickets/4/ . We really appriciate any help in testing of different encodingsDownloads:
3 This WeekLast Update:
See Project
-
17
Provide an Open Source Java Email Server that supports POP3/SMTP.
Downloads:
6 This WeekLast Update:
See Project
-
18
It is not only a web server, it is also
Mail server, DNS server, FTP server, Proxy server… All in one!
This program will help you to open all the possibilities Internet can offer for your company —
public site, provide Internet access and personal mailboxes for each employee!
HTTP server.
Server Side Includes. Regular expression in SSI.
CGI interface for scripts (Executable files; Perl,PHP, or another external interpreters)
ISAPI interface.
Virtual hosts and directories
Mail
POP3 server.
SMTP server.
FTP server
HTTP proxy server
DNS server
DHCP serverDownloads:
7 This WeekLast Update:
See Project
-
19
Use SMTP mail server to send email via command line. Includes HTML or text file and attachments. Has option to send .MHT file. Optional list of email addresses from a tab delimited file. Source code creates its own class using low level RFC 821. SSL supported with options for port, username, password
Downloads:
3 This WeekLast Update:
See Project
-
20
acmemail is a multiuser IMAP/POP3 to Web gateway (or webmail program). It reads mail from a mail server and displays it using HTML on a web server. It is written in Perl, has full support for MIME (and mod_perl) and is quite pretty.
Downloads:
5 This WeekLast Update:
See Project
-
21
This is a customized Ubuntu LIVE CD having KOHA ILS , Greenstone Digital Library Software,DBWiz ,Sopac and wordpress pre-configured with the integration between the two. It also has mail server and client configured for the mail sending features of KOHA.
Downloads:
4 This WeekLast Update:
See Project
-
22
A virus scanner for VPOP3 — a Windows mail server which includes a hook for an ‘external router’ which processes mail before it is delivered to a user’s mailbox. We currently support the free AVG from Grisoft and eTrust EZ Antivirus.
Downloads:
4 This WeekLast Update:
See Project
-
23
CheckeredFlag is a super simple mail server. The intended use is for local application
development that needs to be able to send email. CheckeredFlag runs on the local
machine and doesn’t need a network connection nor any special set up. Just run
it and that is all. SMTP, POP, and webmail are provided, which means you can send email with any email client and recieve email with just about every email client.Downloads:
2 This WeekLast Update:
See Project
-
24
jamesui
An unofficial web console to administer Apache James 3 server
MOVED TO: https://github.com/fulvio999/jamesui
Jamesui is an unofficial web interface to manage and monitor Apache James 3 mail server.
It is written in Java and run inside Apache Tomcat.Downloads:
3 This WeekLast Update:
See Project
-
25
Rumble is a mail server suite for SMTP (ESMTPSA), HTTP, POP3 and IMAP4v1 with an extensive C/C++ and Lua API for scripting. It comes with support for SSL/TLS, SQLite and MySQL and has a web-based administration and webmail feature. Additional included modules feature greylisting, DNS blacklisting, SpamAssassin support and dynamic performance scaling as well as a multithreaded structure that allows for clustering of multiple servers for one or all domains, and with the ease of the Lua API, you can create your own new server mailing lists, CRM software, e-marketing and other extensions within minutes.
Downloads:
1 This WeekLast Update:
See Project