Свой бесплатный почтовый сервер для рассылок: настройка, сертификаты — всё «от и до»

Привет! Меня зовут Максим Кульгин, я основатель 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 можно с официального сайта по ссылке hmailserver. com/download.

Предупреждение о том, что программа больше не разрабатывается — игнорируем.

Для работы сервера не требуется ничего сверх обычного современного компьютера. Обычно 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
Установка .NET Framework
Установка .NET Framework

Установится свежая версия.

Здесь для примера .NET Framework 3.5
Здесь для примера .NET Framework 3.5

Небольшая вводная информация для тех, кто вообще никогда не поднимал своего почтового сервера. Для работы понадобится:

  • доменное имя для почты, которое можно купить у регистраторов доменных имен — это та часть почтового адреса, которая стоит после «@»;
  • оборудование, подключенное к интернету (и, соответственно, имеющее 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. Вот примеры с нашей почтой:

Работа утилиты dig на примере xmldatafeed.ru
Работа утилиты dig на примере xmldatafeed.ru

Настройка межсетевого экрана

Специальные действия с межсетевыми экранами требуются не всегда. Выбор нужного профиля, как правило, уже несет в себе необходимые и правильные настройки.

Межсетевой экран не должен блокировать порты, используемые почтовым сервером. Мы исходим из того, что будет использоваться только безопасный 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 установлен
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».

Привязка SSL-сертификата
Привязка SSL-сертификата

Нужный порт может изначально не отображаться — нужно щелкнуть «Add», чтобы добавить его. После щелчка на кнопке «Add» нужно будет выбрать сертификат из выпадающего списка.

Напоминаем, какие порты какими протоколами используются:

  • 587 — SMTP
  • 995 — POP3
  • 993 — IMAP

Настройка почтовых клиентов

Все современные почтовые клиенты поддерживают протоколы IMAP/POP3/SMTP, включая Microsoft Outlook. Другой популярной альтернативой является Mozilla Thunderbird, которую, в том числе, удобно использовать для проверки корректности работы сервера.

Начальная настройка Mozilla Thunderbird
Начальная настройка Mozilla Thunderbird

Все дальнейшие настройки Mozilla Thunderbird подтянет с сервера самостоятельно.

Если появляется похожее сообщение (то есть не используется защищенное соединение) — значит что-то напутано с портами и сертификатом.

Если шифрование не используется, то будет появляться предупреждение
Если шифрование не используется, то будет появляться предупреждение

Можно попробовать послать несколько почтовых сообщений туда-сюда, убедиться, что всё работает, а заодно посмотреть журнал.

Журнал почтового сервера

Кроме того, для отладки сервера будут полезны следующие ресурсы:

  • mxtoolbox — для тестирования и отладки настроек, о которых шла речь в статье;
  • mail-tester — для проверки «спам-благонадежности».

Результат

Те, кто уже сталкивался с настройкой Microsoft Exchange Server, заметят, что настройка hMailServer несравненно проще. Именно потому он и пользуется такой популярностью!

Нужно только поработать немного с DNS-записями, получить SSL-сертификат и установить программку. Несколько шагов — и почтовый сервер полностью настроен! Если кто делает такое впервые — потребуется всего час или два, причем основное время уйдет на понимание базовых вещей и осмысление интерфейсов, а не на сами манипуляции по настройке.

Рассмотренное в статье — только основа. Мы не затрагивали сложные штуки, которые поддерживает hMailServer:

  • интеграция со сторонними службами, такими как RoundCube или SquirrelMail;
  • поддержка специальных служб защиты от нежелательной почты;
  • встроенное резервное копирование;
  • правила и прочее.

Однако, вернемся к полученным результатам.

Кто-то говорил: «Ай-ай-ай! Будете в спаме!» Ну-ка, посмотрим…

Никакого спама, всё работает отлично!
Никакого спама, всё работает отлично!

«Ты что⁈ Надо пользоваться готовыми решениями! Ай-ай-ай!»

Ещё одно доказательство, что всё благополучно
Ещё одно доказательство, что всё благополучно

Я, как упрямый Труфальдино из Бергамо (многие, уверен, помнят такой фильм по пьесе Карло Гольдони) — забавный хитрый малый, который несмотря на окружающий скепсис — взял и поднял свой почтовик :)

Мы ничего не платим за рассылки и письма. Вообще! И в спам не попадаем. Доставляемость писем почти идеальная. Всё работает.

А почему? А потому, что мы не думаем, а делаем! Чего и всем советую :). А если серьезно, спрашивайте в комментариях, если я что-то упустил!

6666
60 комментариев

Комментарий недоступен

19
Ответить

не совсем соглашусь. Сверстать письмо легко - я давал ссылку на плагины. Выше в статье. Мы уже так делаем. И это работает. Там же есть формат отписок и т.п. Все довольно продумано. Точнее так - это уже работает.

Ответить

Кто бы мог подумать, что создание своего почтового сервера для рассылок - это так просто! Забудьте о платных сервисах, и лучше изобретите свой собственный велосипед. Что может пойти не так? А если вас взломают, ну так это же просто небольшая неприятность, отправлять письма в спаме теперь совсем не стыдно. А еще, может быть, вы станете знаменитым хакером, как Максим Кульгин, основатель clickfraud.ru. Не упустите свой шанс на бесплатную и ненадежную почту!

4
Ответить

Уроки сделал :)? в понедельник в школу, смотри, мама наругает :)

7
Ответить

Комментарий недоступен

1
Ответить

Комментарий недоступен

4
Ответить