Статья давно не обновлялась, поэтому информация могла устареть.
Содержание
- 1 Установка почтового сервера
- 2 Описание настроек почтового сервера hMailServer
- 2.1 Status
- 2.2 Domains
- 2.3 Rules
- 2.4 Settings
- 2.5 Utilities
Установка почтового сервера
В качестве почтового сервера на ОС Windows будем использовать бесплатный почтовый сервер hMailServer. Заходим на сайт Hmailserver в разделе Download скачиваем последнюю доступную версию для установки. Запускаем установку сервера. На пункте выбора типа установки выбираем полную. Выбираем тип сервера баз данных, если планируется большое количество почтовых ящиков и критична их сохранность, выбираем Use external database Engine (MSSQL, MySQL or PostgreSQL) Устанавливаем пароль администратора, обязательно запомните его. После установки возникнет окошко соединения с сервером. Для удобства запуска приложения, установите опцию «Automatically connect on start-up» и нажмите «Connect». На приветственном окне нажимаем кнопку Add domain… Так же добавлять домены можно в разделе Domains-Add…
Добавляем домен
Выделяем домен и в разделе Accounts добавляем почтовый аккаунт
Данных настроек уже достаточно для того, чтобы пользоваться почтой.
Описание настроек почтового сервера hMailServer
Status
В разделе Status-Server мы можем увидеть текущий статус сервера, посмотреть версию сервера и тип используемого сервера баз данных. Так же там отображаются ошибки конфигурации.
В разделе Status-Status собрана статистика сервера, uptime сервера, количество обработанных писем, обнаруженных вирусов и спам-сообщений. Так же в этом разделе отображается количество активных SMTP, POP3, IMAP-сессий.
В разделе Status-Logging можно включить логирование и в прямом “эфире” наблюдать подключения к почтовому серверу. В разделе Status-Delivery Queue находится почтовая очередь, в этом же разделе почтовую очередь можно очистить.
Domains
В разделе Domains можно удалять, добавлять, редактировать настройки домена. Рассмотрим подробнее настройки домена.
В разделе General можно включать/выключать почтовый домен. В разделе Names можно добавить alias для почтового домена. В разделе Signatures можно добавить подпись для писем, отправляемых с ящиков указанного почтового домена. Можно определить условия использования подписи:
- Для всех ящиков, у которых нет подписи
- Перезаписывать подпись почтового ящика
- Добавлять подпись к подписи почтового ящика
Можно добавить текстовую и/или html-подпись.
В разделе Limits устанавливаются лимиты. Maximum Size (Mb) — устанавливает лимит по размеру на все почтовые сообщения во всех почтовых ящиках домена. Maximum message size (Kb) — если значение задано, то hMailServer будет отвергать сообщения больше указанного значения. Если параметр не задан, то будет использоваться значение, указанное в настройках SMTP. Max size of accounts (Mb) — если значение задано, то администратор не сможет добавлять аккаунты с общим объемом, превышающим значение. Так же в этом разделе можно настроить максимальное количество аккаунтов, алиасов и списков рассылок.
В разделе DKIM Signing можно настроить DKIM-подпись. Для формирования подписи и ключа рекомендую воспользоваться ресурсом dkim-wizzard В Pivate key file указываем файл с приватным ключом. В пункте Selector указываем селектор, который должен соответствовать записи в DNS. Например, если ваша запись DNS называется myselector._domainkey.example.net, вы должны ввести «myselector» в качестве селектора (без кавычек).
В разделе Advanced можно настроить адрес для пересылки почты, которая присылается на все несуществующие почтовые ящики, включить, так называемый “Plus addressing” и указать для него символ. Можно включить/выключить greylisting.
В разделе Domains-Accounts производятся настройки каждого конкретного почтового ящика. На вкладке General находятся главные настройки аккаунта. Адрес, пароль и размер почтового ящика. Также можно указать уровень доступа пользователя к серверу:
- User- может менять настройки аккаунта, например пароль.
- Domain — пользователь может изменять базовые настройки домена и пользователей в домене. Может добавлять пользователей, алиасы, листы рассылок, удалять объекты, увеличивать лимиты аккаунтов.
- Server — пользователь может менять настройки сервера и всех доменов в нем.
Дата последней авторизации в аккаунте, если пользователь никогда не авторизовался, то будет показана дата создания аккаунта. Также на вкладке General можно включить/выключить аккаунт.
На вкладке Auto-reply можно настроить автоответчик, указать тему и сообщение автоответчика, а также дату, до которой автоответчик включен.
Во вкладке Forwarding можно настроить адрес для пересылки почты. Во вкладке Signature настраивается подпись для аккаунта, так же как и для домена, можно настроить txt и html-подпись. Во вкладке External accounts можно настроить hMailServer для скачивания почты с других почтовых серверов, используя протокол POP3, после того, как сообщение будет скачано, к нему будут применены все настройки сервера, после этого сообщение будет доставлено в локальный аккаунт. Во вкладке Rules настраиваются правила, которые работают так же как глобальные правила, но применяются только к сообщениям. Подробнее смотрите раздел Rules. Во вкладке Active Directory можно подключить аккаунт Active Directory. Когда пользователь подключится к серверу hMailServer, будет использовать Active Directory для валидации пароля пользователя. Во вкладке Advanced можно указать Имя и Фамилию пользователя (эти данные не используются hMailServer). Можно отредактировать IMAP-папки, очистить содержимое всех IMAP-папок.
Во вкладке Domains-Aliases настраиваются алиасы для почтовых ящиков.
В Domains — Distribution lists производится настройка списка рассылки. Address — адрес рассылки, сообщения, посланные на этот адрес, будут пересланы всем в списке рассылки. Существует 3 режима:
- Public — любой может слать письма.
- Membership — только члены списка могут спать письма.
- Announcements — сообщения могут отправляться только с определенного почтового ящика.
Require SMTP Authentication — если установлен этот флаг, то hMailServer потребует аутентификации SMTP для доставки по списку рассылки. Если выбран этот параметр , только пользователи с учетными записями на сервере будут иметь возможность отправлять электронную почту в список рассылки. На вкладке Members можно добавлять почтовые адреса. Поддерживается добавление адресов из hMailServer (Select…) и импорт из текстового файла (Import…).
Rules
В разделе Rules можно включить правила, основанные на содержимом письма, например, можно удалять письма с определенной строкой, или пересылать письма больше определенного размера. Каждое правило имеет критерий и действие. Когда вы создаете правило, вы добавляете критерий, который определяет к какому сообщению будет применено правило. Например, можно добавить критерий, который будет действовать на письма с определенным Message-ID-header. После добавления критерия, добавляем действие. Действие описывает, что должен делать hMailServer с сообщением, если оно соответствует критерию. Например, можно переслать, удалить сообщение или поместить его в определенную папку.
Settings
В разделе Settings производятся настройки протоколов. Можно настроить антиспам, антивирус (Clamav, требуется дополнительная установка), включить логирование. В Settings-Advanced производятся настройки Auto-ban, SSL-сертификата, портов и Ip-адресов почтового сервера.
Utilities
В разделе Backup можно сделать бэкап настроек, доменов, сообщений, также там указан скрипт, который можно добавить в ежедневное задание. В этом разделе также можно восстановить данные из бэкапа. В разделе MX-query можно произвести диагностику MX-записи почтового сервера (аналог dig MX) В разделе Server sendout можно отправить сообщение на локальный почтовый адрес. Diagnostics — еще один инструмент диагностики, проверяет подключение по 25 порту, MX-записи домена.
Почтовый сервер – это устройство, при помощи которого происходит доставка электронных сообщений от отправителя к получателю. Собственно, это и следует из его названия. В данной статье рассмотрим, как происходит установка и базовая настройка почтового сервера на VPS с операционной системой семейства Windows Server, а также на виртуальном сервере, работающем на Ubuntu 20.04.
Установка сервера SMTP на Windows Server
На серверах, работающих под управлением операционных систем Windows, для передачи почтовых сообщений часто используется протокол SMTP. В Windows Server служба SMTP является одним из компонентов операционной системы.
Для корректной отправки почтового сообщения от имени домена, к которому будет привязан сервер SMTP, нам необходимо иметь доменное имя. При этом в настройках домена должна быть указана A-запись, содержащая IP-адрес VPS. В нашем примере мы будем использовать имя домена my-domain.host
.
Установку почтового сервера нужно будет начать именно с добавления необходимых компонентов. Для этого запустите Server Manager
, перейдите Manage
→ Add Roles and Features
.
В открывшемся окне нажмите Next
.
Далее выберите опцию Role-based or feature-based installation
, после чего нажмите Next
.
В следующем окне укажите сервер, на который будет производиться установка новых компонентов, либо просто нажмите Next
, если в вашем пуле серверов одна-единственная запись.
На следующем шаге активируйте строку Web Server (IIS)
, после чего нажмите Add Features
.
Далее нажмите Next
.
После чего отметьте строку SMTP Server
и нажмите Add Features
.
И нажмите Next
.
Далее ещё раз нажмите Next
.
В следующем окне снова нажмите Next
.
Для запуска установки выбранных компонентов нажмите Install
.
Настройка сервера SMTP
На следующем этапе необходимо будет настроить сервер SMTP. Для чего в Server Manager
перейдите Tools
→ Internet Information Services (IIS) 6.0 Manager
.
В открывшемся окне менеджера IIS раскройте ветку вашего сервера и на строке SMTP Virtual Server
нажмите правую кнопку мыши, после чего перейдите в Properties
.
Далее в строке IP address:
необходимо выбрать IP-адрес вашего сервера и активировать опцию Enable logging
.
Во вкладке Access
нажмите кнопку Authentication...
В открывшемся окне активируйте опцию Anonymous access
. Активация данной опции нужна, чтобы пользователи и приложения смогли бы использовать сервер SMTP анонимно. Позже можно будет настроить более безопасную аутентификацию, пока же нажмите OK
.
Далее в разделе Connection control
нажмите кнопку Connection...
В окне Connection
установите переключатель на Only the list below
и при помощи кнопки Add...
добавьте IP-адрес вашего VPS. После чего нажмите OK
.
Точно такую же настройку необходимо проделать в разделе Relay restrictions
. Для чего нажмите кнопку Relay...
и добавьте IP-адрес вашего сервера установив переключатель в Only the list below
.
После чего перейдите во вкладку Delivery
и нажмите Advanced...
Здесь в строку Fully-qualified domain name:
необходимо внести имя вашего домена, в нашем примере это – my-domain.host
.
Для того, чтобы проверить корректность данной настройки, нажмите кнопку Check DNS
.
Далее сохраните все внесённые в настройки изменения при помощи кнопки OK
.
Также необходимо указать корректное имя домена в ветке Domains
.
На следующем шаге нужно активировать функцию автоматического запуска сервера SMTP. Для этого запустите командную строку PowerShell и выполните следующие команды для запуска службы:
set-service smtpsvc -StartupType Automatic
start-service smtpsvc
Чтобы убедиться, что служба запущена, необходимо выполнить ещё одну команду:
get-service smtpsvc
Вывод данной команды должен выглядеть примерно следующим образом:
Теперь там же, в командной строке PowerShell, при помощи следующей команды отправьте сообщение на свою электронную почту:
Send-MailMessage -SmtpServer my-domain.host -To your@email.address -From mail@my-domain.host -Subject "Message Subject" -Body "Message Body"
Здесь:
my-domain.host
– имя домена, с которого будет производиться отправка сообщения;your@email.address
– адрес электронной почты, на который будет отправлено сообщение;mail@my-domain.host
– этот электронный адрес будет указан в сообщении как адрес отправителя;Message Subject
– тема письма;Message Body
– тело письма.
После чего проверьте свою почту, на которую должно прийти сообщение от вашего почтового сервера.
Установка и настройка Postfix на Ubuntu 20.04
Для операционной системы Ubuntu существует довольно популярный почтовый сервер – Postfix. Для установки Postfix мы будем использовать виртуальный сервер, работающий на Ubuntu 20.04. При этом на VPS должны быть произведены работы по первоначальной настройке, описанные в соответствующей статье нашего справочника.
Также, для работы Postfix нужен домен с привязанной A-записью, которой является IP-адрес вашего виртуального сервера.
Плюс ко всему, необходимо соотнести имя домена с именем сервера и его IP-адресом. Для этого запустите следующую команду:
$ sudo hostnamectl set-hostname ubuntu-server
Здесь, ubuntu-server
– имя нашего сервера, вместо которого вы можете использовать своё.
Теперь при помощи текстового редактора откройте файл /etc/hosts
:
$ sudo nano /etc/hosts
В данный файл добавьте строку:
XXX.XXX.XXX.XXX my-domain.host ubuntu-server
В данном случае:
XXX.XXX.XXX.XXX
– IP-адрес вашего сервера;my-domain.host
– имя вашего домена;ubuntu-server
– имя вашего сервера.
Теперь запустите установку Postfix
и почтового пакета mailutils
:
$ sudo apt install postfix mailutils
В процессе установки система попросит вас выбрать тип конфигурации. Необходимо указать Internet Site
:
Также установщик попросит согласиться с именем домена, в отношении которого производится настройка почтового сервера. В нашем случае это будет my-domain.host
.
По окончании установки можно попробовать с нашего почтового сервера отправить тестовое сообщение. Команда для отправки сообщения выглядит следующим образом:
$ echo "Message Body" | mail -s "Message Subject" your@email.address
В данной команде:
Message Body
– тело письма;Message Subject
– тема письма;your@email.address
– адрес электронной почты, на который будет отправлено сообщение.
Проверьте свой почтовый ящик (в нашем примере это – your@email.address
), на который должно прийти отправленное из Postfix
сообщение.
Вы можете установить SMTP сервер с помощью встроенных средств во всех версиях Windows Server. Такой SMTP сервер внутри организации может работать в качестве почтового релея, который должен принимать и пересылать через себя SMTP сообщения от различных устройств (к примеру, сендеров, сканеров, устройств СКД и пр.) и приложений (веб приложения, SQL Reporting Services, SharePoint), которым необходимо иметь возможность отправлять почту через SMTP сервер. Такой релей может пересылать сообщения на полноценные Exchange сервер или на публичные почтовые сервисы в Интернет типа Gmail, Mail.ru, Office 365 и т.д (ведь не всегда целесообразно разворачивать полноценную внутреннюю почтовую инфраструктуру на базе Microsoft Exchange Server или других почтовых служб).
В этой статье мы покажем, как установить, настроить и протестировать работу SMTP сервера на Windows Server 2012 R2, 2016 и 2019, который будет функционировать в качестве mail релея. Такой SMTP сервер не хранит почтовые сообщения и на нем отсутствуют почтовые ящики, он сможет только отправлять или пересылать почту.
Содержание:
- Установка службы SMTP на Windows Server 2016/2012 R2
- Настройка SMTP сервера на Windows Server
- Автозапуск службы SMTPSVC
- Проверка работы SMTP сервера на Windows Server
Установка службы SMTP на Windows Server 2016/2012 R2
SMTP сервер – это один из компонентов Windows Server, который можно установить через Server Manager. Для этого откройте консоль Server Manager Dashboard (servermanager.exe), перейдите в режим Add roles and features и на этапе выбора функций отметьте чекбокс у пункта SMTP Server. Для управления службой SMTP нужно установить консоли управления, которые входят в комплект роли Web Server IIS (вам будет предложено установить IIS Management Tools).
Оставьте все предлагаемые опции роли Web Server (IIS) и запустите установку.
Также вы можете установить компонент SMTP сервера с помощью одной команды PowerShell:
Install-WindowsFeature smtp-server
После окончания установки компонентов может потребоваться перезагрузка системы.
Настройка SMTP сервера на Windows Server
Управляется SMTP сервер консоль управления Internet Information Services (IIS) Manager 6. Открыть эту консоль можно через Server Manager: Tools-> Internet Information Services (IIS) 6.0 Manager или командой inetmgr6.exe.
В консоли IIS 6 Manager разверните ветку с именем сервера, щёлкните ПКМ по SMTP Virtual Server и откройте его свойства.
На вкладке General, если необходимо, выберите IP адрес, на котором должен отвечать SMTP сервер (если у сервера несколько IP адресов), и включите ведение логов Enable logging (чтобы сохранялась информация обо всех полученных письмах).
Затем перейдите на вкладку Access.
Здесь нажмите на кнопку Authentication и убедитесь, что разрешен анонимный доступ (Anonymous access).
Вернитесь на вкладку Access и нажмите кнопку Connection. Здесь вы можете указать IP адреса устройств, которым разрешено отправлять почту через наш SMTP релей. Нужно выбрать опцию Only the list below и указать список IP адресов, не забыв самого себя (127.0.0.1).
Аналогичным образом настройте список разрешенных IP в настройках Relay (нажмите соответствующую кнопку). В этой секции указано каким IP адресам (или подсетям) можно пересылать почту через ваш SMTP сервер.
Примечание. Как правило, обязательно стоит включать эту опцию, как минимум ограничив список обслуживаемых устройств диапазоном IP адресов. В противном случае ваш SMTP сервер может использоваться спамерами и другими злоумышленниками как открытый релей для массовых почтовых рассылок.
Перейдите на вкладку Messages. Здесь указывается email, на который будут отправляться копии всех NDR отчетов (Send copy of Non-Delivery Report to:). Также здесь можно указать ограничения на максимальный размер писем (Limit message size KB) и количество получателей (Limit number of recepients per message).
Перейдите на вкладку Delivery:
Затем нажмите на кнопку Outbound Security. Здесь указывается, как нужно авторизоваться на почтовом сервере, на который ваш SMTP-сервере будет пересылать (relay) всю почту. К примеру, если вся почта будет отправляться на почтовый сервер Gmail и уже с него пересылаться адресатам, вам нужно выбрать тип аутентификации Basic authentication, указав в качестве пользователя и пароля данные для доступа к почтовому ящику на сервисе Gmail (в настройках аккаунта Google нужно разрешить отправку через smtp сервера gmail).
Затем нажмите на кнопку Advanced.
Здесь указывается FQDN имя вашего SMTP сервера. Нажмите кнопку Check DNS, чтобы проверить корректность записи в DNS.
Если сервер должен пересылать почту внешнему smtp серверу, нужно указать его имя в поле Smart host (к примеру smtp.gmail.com или smtp.office365.com).
Некоторые внешние почтовые сервера принимает почту только при использовании защищенного SMTP соединения с помощью TLS Encryption (используется порт TCP 587). Это настраивается в разделе Delivery-> Outbound Security и Outbound Connections. Ознакомитесь с документацией вашего почтового провайдера.
Сохраните настройки SMTP сервера и перезапустите ваш виртуальный SMTP сервер для применения изменений.
Примечание.
- Настройки DNS критичны с точки зрения работоспособности почтовой системы. Если ваш SMTP сервер не может корректно разрешить DNS имена доменов, на которые он пытается отправить письма, доставка не удастся.
- Если ваш сервер сам будет отправлять почту в другие домены, важно, чтобы для вашего адреса была сформирована правильная PTR запись для разрешения обратных DNS запросов. PTR запись для белого IP адреса должна указывать на FQDN имя. В противном случае большинство внешних smtp серверов не будут принимать от вас почту, считая ваш сервер спамерским.
Автозапуск службы SMTPSVC
Осталось настроить автозапуск службы SMTP сервера. Быстрее всего это сделать из командной строки PowerShell:
set-service smtpsvc -StartupType Automatic
Запустим службу:
start-service smtpsvc
Проверим, что запущена служба SMTPSVC :
get-service smtpsvc
Status Name DisplayName
—— —- ————
Running smtpsvc Simple Mail Transfer Protocol (SMTP)
Проверка работы SMTP сервера на Windows Server
Ну и последнее, что осталось сделать, проверить работу созданного SMTP сервера. Проще всего это сделать, создав на рабочем столе текстовый файл smtp-test-email.txt и скопировав в него следующий текст, заменив имя отправителя и получателя на ваши.
From: [email protected]
To: [email protected]
Subject: Email test
This is the test email
Скопируйте файл smtp-test-email.txt в каталог C:\inetpub\mailroot\Pickup. SMTP сервер следит за появлением файлов в этой каталоге и при обнаружении файла прочтет его содержимое и попытается отправить письмо с данной темой и текстом адресату, указанному в разделе To:.
Проверьте ящик получателя, в него должно прийти такое письмо.
Совет. Протестировать работу SMTP сервера можно и из командой строки telnet, скрипта vbs или PowerShell:
Send-MailMessage -SMTPServer localhost -To [email protected] -From [email protected] -Subject "Email test" -Body "This is the test email sent via PowerShell"
Если вы хотите, чтобы вы включили Basic Authentication (Обычная проверка подлинности) для авторизации всех ваших SMTP клиентов (вместо анонимной аутентификации), вы можете отправить письмо с smtp-аутентификацией через telnet следующим образом.
Также убедитесь, что на вашем SMTP сервере не блокируется порт TCP 25 при удаленном подключении (локальным файерволом, антивирусом или межсетевым экраном). Проще всего это сделать с компьютера Windows, IP адрес которого добавлен в разрешенные. Проверку доступности порта можно выполнить с помощью командлета Test-NetConnection:
Test-NetConnection smtpsrv1.name.local –port 25
Если 25 порт блокируется, проверьте настройки Windows Firewall, антивируса и аппаратных межсетевых экранов.
Итак, вы настроили собственный почтовый SMTP релей на Windows Server 2016/2012 R2 и протестировали отправку писем через него.
Привет! Меня зовут Максим Кульгин, я основатель 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$ стоит, купил и забыл, копейки), который обладает нужным нам функционалом для построения сложных сценариев рассылок (о чем речь — послали рассылку, следующую шлем тем, кто открыл предыдущую, или открыл и куда-то кликнул и т.п.).
Если на компьютере установлена операционная система 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
Установится свежая версия.
Небольшая вводная информация для тех, кто вообще никогда не поднимал своего почтового сервера. Для работы понадобится:
- доменное имя для почты, которое можно купить у регистраторов доменных имен — это та часть почтового адреса, которая стоит после «@»;
- оборудование, подключенное к интернету (и, соответственно, имеющее IP-адрес) , которое дается в аренду хостинг-провайдерами.
Эти услуги можно покупать как раздельно, так и вместе «за раз», поскольку многие хостинг-провайдеры одновременно являются и аккредитованными регистраторами доменных имен.
Поскольку эта статья информационная, а не рекламная, то никаких ссылок давать не будем. Всё необходимое для понимания и использования — в статье ниже. Когда же придет время действовать, то поисковый запрос «регистрация доменного имени» или «хостинг провайдер» покажет все топовые конкурирующие предложения.
Как было сказано выше, есть несколько настроек 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…».
Теперь осталось добавить пользователей — тех, кто будет иметь почтовые ящики на нашем почтовом сервере. Помимо имен можно задать пароли, ограничение размера для сообщений и тому подобное.
Можно упростить администрирование учетных записей и паролей, если объединить 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-сертификат в дополнение дает возможность использовать шифрование электронной почты, а также задействовать прочие средства безопасности.
Но здесь теперь всё не так просто, как было раньше.
Сертификат должен быть признан всеми участниками сети, в том числе теми, кому будет адресована почта. Это значит, что сертификат должен быть выдан уполномоченным центром, который известен и отправителю почты и получателю.
Обычные пользователи, как правило, не задумываются над этими техническими особенностями, потому что корневые сертификаты основных удостоверяющих мировых центров — 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;
- поддержка специальных служб защиты от нежелательной почты;
- встроенное резервное копирование;
- правила и прочее.
Однако, вернемся к полученным результатам.
Кто-то говорил: «Ай-ай-ай! Будете в спаме!» Ну-ка, посмотрим…
«Ты что⁈ Надо пользоваться готовыми решениями! Ай-ай-ай!»
Я, как упрямый Труфальдино из Бергамо (многие, уверен, помнят такой фильм по пьесе Карло Гольдони) — забавный хитрый малый, который несмотря на окружающий скепсис — взял и поднял свой почтовик
Мы ничего не платим за рассылки и письма. Вообще! И в спам не попадаем. Доставляемость писем почти идеальная. Всё работает.
А почему? А потому, что мы не думаем, а делаем! Чего и всем советую :). А если серьезно, спрашивайте в комментариях, если я что-то упустил!
-
Star
(83)
You must be signed in to star a gist -
Fork
(18)
You must be signed in to fork a gist
-
Clone this repository at <script src="https://gist.github.com/raelgc/6031306.js"></script>
- Save raelgc/6031306 to your computer and use it in GitHub Desktop.
Clone this repository at <script src="https://gist.github.com/raelgc/6031306.js"></script>
Setup a Local Only Email Server (Windows Only)
1 — Install hMailServer
Download hMailServer from here: http://www.hmailserver.com/index.php?page=background_download_file&downloadid=207.
- In setup, select internal db engine.
- Now you have a service called hMailServer and an administration program on the Windows start menu (hMailServer Administrator).
2 — Create a domain
- Open hMailServer Administrator program.
- Click on «Domains» and then «add domain».
- At «domain name» put a fake domain to test. Use «localhost.com» (without the quotes): hMailServer requires a fully qualified domain, so, we cannot use @localhost.
- Make sure to add your domain (localhost.com) to hosts file: C:\windows\system32\drivers\etc\hosts
3 — Change server name
- Expand Settings > Protocols > SMTP -> Delivery of e-mail
- At «Host name» put «localhost» (without the quotes).
- Check if TCP Port is 25.
4 — Create an account
- Go to «Domains», click on the created domain, and then click on «accounts», then «add account».
- At «address», create your account name, here I use «rael» (without the quotes), and put a password.
- Change «Administration level» to «Server».
5 — Configure «catch-all» address
- Enabling this, you can use any email address ending with you fake domain. Example: here, my unique account is rael@localhost.com. But while testing systems, I can use any address like joe@localhost.com, foo@localhost.com, etc, because all will be redirected to rael@localhost.com
- Open «Domains», click on your domain, open Advanced tab, fill field «catch-all address» with account created on previous step.
6 — Configure an Email client
- At Windows, you can use Windows Live Email (http://explore.live.com/windows-live-essentials-other-programs?T1=t2).
- Of course, you can use any email client.
- While configuring
- Incoming Server is POP3, and the username is the full email address (like rael@localhost.com), and the password is raw text (no encrypt).
- POP3 and SMTP server are «localhost» (without the quotes).
- Outgoing server do not require authentication.
- Don’t use the email client and the hMailServer Administration application at the same time!