Как создать почтовый ящик на windows server

Вы можете установить 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).

smtp сервер на windows server 2012 r2

Оставьте все предлагаемые опции роли Web Server (IIS) и запустите установку.

Компоненты веб сервера 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 и откройте его свойства.

Свойства SMTP сервера

На вкладке General, если необходимо, выберите IP адрес, на котором должен отвечать SMTP сервер (если у сервера несколько IP адресов), и включите ведение логов Enable logging (чтобы сохранялась информация обо всех полученных письмах).

Адрес SMTP сервера

Затем перейдите на вкладку Access.

Настройки SMTP доступа

Здесь нажмите на кнопку 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).

Лимиты SMTP сообщений

Перейдите на вкладку 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 сервер для применения изменений.

Примечание.

  1. Настройки DNS критичны с точки зрения работоспособности почтовой системы. Если ваш SMTP сервер не может корректно разрешить DNS имена доменов, на которые он пытается отправить письма, доставка не удастся.
  2. Если ваш сервер сам будет отправлять почту в другие домены, важно, чтобы для вашего адреса была сформирована правильная 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)

set-service smtpsvc - управление службой SMTP

Проверка работы SMTP сервера на Windows Server

Ну и последнее, что осталось сделать, проверить работу созданного SMTP сервера. Проще всего это сделать, создав на рабочем столе текстовый файл smtp-test-email.txt и скопировав в него следующий текст, заменив имя отправителя и получателя на ваши.

From: [email protected]
To: [email protected]
Subject: Email test

This is the test email

Тестирование отправки smtp сообщений

Скопируйте файл 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 и протестировали отправку писем через него.

Почтовый сервер – это устройство, при помощи которого происходит доставка электронных сообщений от отправителя к получателю. Собственно, это и следует из его названия. В данной статье рассмотрим, как происходит установка и базовая настройка почтового сервера на VPS с операционной системой семейства Windows Server, а также на виртуальном сервере, работающем на Ubuntu 20.04.

Установка сервера SMTP на Windows Server

На серверах, работающих под управлением операционных систем Windows, для передачи почтовых сообщений часто используется протокол SMTP. В Windows Server служба SMTP является одним из компонентов операционной системы.

Для корректной отправки почтового сообщения от имени домена, к которому будет привязан сервер SMTP, нам необходимо иметь доменное имя. При этом в настройках домена должна быть указана A-запись, содержащая IP-адрес VPS. В нашем примере мы будем использовать имя домена my-domain.host.

Установку почтового сервера нужно будет начать именно с добавления необходимых компонентов. Для этого запустите Server Manager, перейдите ManageAdd Roles and Features.

В открывшемся окне нажмите Next.

Мастер добавления ролей и компонентов - Установка и настройка почтового сервера

Далее выберите опцию Role-based or feature-based installation, после чего нажмите Next.

Выбор установки ролей и компонентов

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

Выбор сервера

На следующем шаге активируйте строку Web Server (IIS), после чего нажмите Add Features.

Добавление компонент веб-сервера (IIS)

Далее нажмите Next.

Выбор установки веб-сервера (IIS)

После чего отметьте строку SMTP Server и нажмите Add Features.

Добавление компонентов сервера SMTP

И нажмите Next.

Выбор установки сервера SMTP

Далее ещё раз нажмите Next.

Роли веб-сервера (IIS)

В следующем окне снова нажмите Next.

Роли веб-сервера (IIS)

Для запуска установки выбранных компонентов нажмите Install.

Установка выбранных ролей и компонентов - Установка и настройка почтового сервера

Настройка сервера SMTP

На следующем этапе необходимо будет настроить сервер SMTP. Для чего в Server Manager перейдите ToolsInternet Information Services (IIS) 6.0 Manager.

В открывшемся окне менеджера IIS раскройте ветку вашего сервера и на строке SMTP Virtual Server нажмите правую кнопку мыши, после чего перейдите в Properties.

Свойства сервера SMTP

Далее в строке IP address: необходимо выбрать IP-адрес вашего сервера и активировать опцию Enable logging.

Указание IP-адреса включение ведения журналов

Во вкладке 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

Вывод данной команды должен выглядеть примерно следующим образом:

Вывод команды 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.

Подтверждение имени домена при установке Postfix

По окончании установки можно попробовать с нашего почтового сервера отправить тестовое сообщение. Команда для отправки сообщения выглядит следующим образом:

$ echo "Message Body" | mail -s "Message Subject" your@email.address

В данной команде:

  • Message Body – тело письма;
  • Message Subject – тема письма;
  • your@email.address – адрес электронной почты, на который будет отправлено сообщение.

Проверьте свой почтовый ящик (в нашем примере это – your@email.address), на который должно прийти отправленное из Postfix сообщение.

Почтовый сервер, как следует из названия, — это устройство, которое отвечает за корректную доставку электронных писем от отправителя получателю. Так, например, когда вы отправляете почту через Gmail, вероятнее всего вы используете почтовый сервер Google. 

Почтовый клиент — это программа, которая используется непосредственно для работы с почтой: чтения, отправки и хранения. Примеры таких клиентов — Microsoft Outlook, Thunderbird и так далее. 

Протоколы для приёма и отправки почты

SMTP

Сервер исходящей почты использует протокол SMTP — simple mail transfer protocol — дословно переводится как «простой протокол передачи почты». Главная задача протокола — быть ретранслятором между отправителем и получателем. Она заключается в выполнении каждой из двух ключевых функций: проверять конфигурацию и разрешать отправку устройству-отправителю, отправлять сообщение и получать код ответа. 

SMTP-сервер использует 25 и 465 порты для отправки почты с шифрованием и без шифрования соответственно. 

POP3

POP3 (Post Office Protocol) — протокол для получения электронной почты. Он позволяет установить соединение с сервером и загрузить письмо на локальное устройство, чтобы отобразить его в почтовом клиенте. При этом на удалённом сервере информация не сохраняется (однако существует опция создания дублей).

Этот протокол использует 110 и 995 порты (без шифрования и SSL/TLS). 

IMAP

IMAP (Internet Message Access Protocol) — протокол с теми же задачами и функциями, что и POP3. Ключевое отличие в том, что IMAP позволяет работать с почтой непосредственно на сервере, без дублирования почты на локальное устройство. 

Используются порты 143 и 993 (без шифрования и SSL/TLS).

Зачем нужен собственный почтовый сервер

Чаще всего ответ на этот вопрос: «если настроить свой сервер, можно использовать свой домен в адресе электронной почты». Это верный, однако не совсем точный ответ. 

Настроить почту на своём домене вы сможете и без создания собственного сервера. Такую услугу, например, предоставляют VK Group, Яндекс.Почта и Google. Вам нужно только купить домен и привязать его к серверам компании в личном кабинете. 

Основное преимущество такого подхода — уже настроенный SMTP-сервер. То есть вам не придётся заниматься настройками переадресации, антиспам-фильтрами и прочими сложными настройками. Достаточно лишь грамотно указать NS-записи, а это не так сложно, как создать свой почтовый сервер. Кроме того, стоимость обслуживания и настройки гораздо ниже по сравнению с конфигурацией собственного сервера.

Однако при использовании сторонних сервисов вы не будете иметь полный контроль над работой почты. Во-первых, количество отправляемых писем будет ограничено. У каждой компании установлены свои лимиты, но вам не хватит квоты, если вы работаете с большими объёмами электронной почты: корпоративная почта, рассылки и так далее. 

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

Создание почтового сервера

В этой статье мы рассмотрим способы создания собственного почтового сервера. Для наших целей отлично подойдут облачные серверы Timeweb — мы выберем себе устройство с ОС Ubuntu версии 20.04. 

cloud

Настроенная нами почта будет поддерживать шифрование, мы обеспечим защиту от спама, а также настроим панель администрирования писем в веб-среде.

Подготовка сервера

Первый шаг — переход в режим суперпользователя root:

sudo su

Перед установкой необходимого программного обеспечения обновим пакеты на сервере:

apt update && apt upgrade

Затем необходимо проверить, соответствует ли имя сервера домену вашей электронной почты:

hostname

Если в ответе вы видите что-то отличное от желаемого имени сервера, используйте команду hostnamectl:

hostnamectl set-hostname mail.hostname.ru,

где mail.hostname.ru — имя хоста.  

Далее для корректной работы всех планировщиков и непосредственно почты настраиваем временную зону — устанавливаем пакет для синхронизации времени chrony:

apt install chrony
timedatectl set-timezone Europe/Moscow

Если ваша временная зона отличается от МСК, выберите подходящую, воспользовавшись командой timedatectl list-timezones.

Запускаем chrony:

systemctl enable chrony

Теперь нужно открыть порты, необходимые для работы почтового сервера, с помощью утилиты iptables. Нам нужен следующий набор портов: 

  1. 25, 465 — SMTP
  2. 110, 995 — POP3
  3. 143, 993 — IMAP
  4. 80, 443 — HTTP 

В списке выше первыми идут порты для стандартных соединений, а вторыми — для защищённых. Воспользуемся утилитой iptables:

iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPT

Правила iptables сохраняются в течение одного сеанса, то есть после перезагрузки устройства они сбросятся. Чтобы этого избежать, используем пакет iptables-persistent:

netfilter-persistent save

Теперь можем переходить к тому, как сделать свой почтовый сервер с точки зрения программного обеспечения.

Установка и настройка Postfix

Postfix — агент передачи почты (mail transfer agent) с открытым исходным кодом. Он имеет модульную архитектуру, которая не требует работы из-под суперпользователя root. Установим приложение postfix и postfix-mysql для работы с базой данных:

apt install postfix postfix-mysql

В диалоговом окне в процессе установки выбираем Internet Site. Это предполагает, что у вас есть доступ к редактированию DNS-записей и вы можете указать FQDN — полное имя домена. В следующем окне оставляем имя сервера и переходим далее. 

Image3

После установки создаём новую учётную запись в системе, из-под этого пользователя будем работать с почтой. С помощью утилиты groupadd создаём группу vmail:

addgroup -gid 1080 vmail

Далее создадим пользователя vmail и назначим ему домашнюю директорию /home/mail:

adduser --home /home/mail -gid 1080 -uid 1080 vmail

… где 1080 — guid группы и uid пользователя. Если он занят, вы можете заменить его на любой другой. 

Проверим, что права на директорию /home/mail принадлежат пользователю vmail и группе vmail:

ll /home

Конфигурация почтового сервера

После создания пользователя можно приступить к настройке postfix. Для этого открываем файл /etc/postfix/main.cf в любом текстовом редакторе:

nano /etc/postfix/main.cf

… и редактируем строки:

# Для каких доменов принимаем почту
mydestination = localhost.$mydomain, localhost, localhost.localdomain

# протокол работы postfix
Inet_protocols = ipv4

# путь до публичного сертификата.
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
# путь до приватного сертификата.
smtpd_tls_key_file = /etc/ssl/mail/private.key

Далее в этот же файл дописываем дополнительные опции, которые необходимы для корректной работы Postfix:

# где будем хранить почту
virtual_mailbox_base = /home/mail
# путь к псевдонимам
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf 
# формат хранения доменов
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
# формат хранения почтовых ящиков
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
# минимальный идентификатор виртуального пользователя
virtual_minimum_uid = 1080
# идентификатор основного пользователя, от которого создаются сообщения
virtual_uid_maps = static:1080
# идентификатор группы, от пользователей которой создаются сообщения
virtual_gid_maps = static:1080
# регистрируем доставщик сообщений
virtual_transport = dovecot

# разрешаем безопасную аутентификацию
smtpd_sasl_auth_enable = yes
# не используем шифрование в сетях $mynetworks
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
# тип аутентификации
smtpd_sasl_type = dovecot
# где лежат временные файлы 
smtpd_sasl_path = private/auth

# шифровать соединение при подключении к другому SMTP-серверу
smtp_use_tls = yes
# поддерживаем подключение TLS
smtpd_use_tls = yes
# и используем только TLS
smtpd_tls_auth_only = yes
# начинаем сессию с HELO (или EHLO)
smtpd_helo_required = yes

Теперь создадим файлы, которые указывали в этой конфигурации. Сперва укажем, где Postfix должен брать псевдонимы. Открываем файл /etc/postfix/mysql_virtual_alias_maps.cf:

nano /etc/postfix/mysql_virtual_alias_maps.cf

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

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Здесь dbname, user и password — база данных, имя пользователя и пароль для подключения к MySQL (настроим позже), query — шаблон запроса.

Делаем аналогичные действия с файлом для получения данных доменов:

nano /etc/postfix/mysql_virtual_domains_maps.cf

Записываем:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'

Следом — файл с почтовыми ящиками:

nano /etc/postfix/mysql_virtual_mailbox_maps.cf

Записываем:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

На этом этапе мы можем перейти к настройке файла master.cf:

nano /etc/postfix/master.cf

И записываем туда следующие настройки:

submission   inet  n  -  n  -  -  smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=/var/spool/postfix/private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname

smtps   inet  n  -  n  -  -  smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

dovecot   unix  -  n  n  -  -  pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Генерация сертификатов безопасности

Для корректной работы почты нужно сгенерировать сертификаты безопасности с помощью утилиты openssl. В первую очередь создаём директорию, в которой будем хранить сертификаты (указывали в файле main.cf):

mkdir -p /etc/ssl/mail
openssl req -new -x509 -days 1000 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mail.devnullhost.ru"

Запускаем и перезагружаем postfix:

systemctl enable postfix && systemctl restart postfix

Установка и настройка Dovecot 

Dovecot — IMAP и POP3 сервер с открытым исходным кодом. Установим его и модули для работы с БД:

apt install dovecot-imapd dovecot-pop3d dovecot-mysql

Настраиваем способ хранения сообщений:

nano /etc/dovecot/conf.d/10-mail.conf

Записываем в файл каталог для хранения почты. Будем использовать иерархию домен → пользователь:

mail_location = maildir:/home/mail/%d/%u/

В этом же файле настраиваем метод аутентификации:

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }
}

service stats {
    unix_listener stats-reader {
        user = vmail
        group = vmail
        mode = 0660
    }
    unix_listener stats-writer {
        user = vmail
        group = vmail
        mode = 0660
    }
}

Настраиваем аутентификацию в Dovecot:

nano /etc/dovecot/conf.d/10-auth.conf

Заменяем строку !include auth-system.conf.ext на !include auth-sql.conf.ext, указывая, что использовать нужно sql-авторизацию.

Редактируем настройки шифрования:

nano /etc/dovecot/conf.d/10-ssl.conf

В файле указываем:

ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key

При первом подключении пользователей создаём каталоги в домашней директории:

nano /etc/dovecot/conf.d/15-lda.conf

Добавляем строку:

lda_mailbox_autocreate = yes

Настраиваем подключение к базе данных:

nano /etc/dovecot/dovecot-sql.conf.ext

И добавим в него:

driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixPa$$w0rd
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'

Настраиваем интерфейс Dovecot:

nano /etc/dovecot/dovecot.conf

Указываем:

listen = *

Запускаем и перезагружаем Dovecot:

systemctl enable dovecot && systemctl restart dovecot

Установка и настройка PostfixAdmin

Для корректной работы PostfixAdmin нужен настроенный веб-сервер, PHP и база данных MySQL (стеки LAMP или LEMP). В этом руководстве пропустим конфигурацию веб-сервера и приступим непосредственно к установке PostfixAdmin.

Устанавливаем необходимые расширения php:

apt install php-mysql php-mbstring php-imap

Скачиваем PostfixAdmin в корневой каталог веб-сервера с помощью утилиты wget:

wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz

Создаём каталог postfixadmin и помещаем туда содержимое архива:

mkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1

И создаём каталог для хранения кэша шаблонов:

mkdir /var/www/html/postfixadmin/templates_c

Ставим на весь каталог права веб-сервера:

chown -R www-data:www-data /var/www/html/postfixadmin

База данных

Создаём базу данных и пользователя:

mysql -u root

Если у вас MySQL версии ниже 8.0.11:

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
exit;

Если у вас MySQL 8.0.11 и выше:

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
GRANT ALL ON postfix.* TO 'postfix'@'localhost';

В локальном файле конфигурации postfix добавим конфигурацию базы данных: 

nano /var/www/html/postfixadmin/config.local.php

Содержимое файла:

<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
>

Заходим на страницу установщика postfixadmin в браузере — /postfixadmin/public/setup.php. Здесь нам будет предложено сгенерировать хэш для авторизации.

Image1

Вводим пароль и нажимаем на кнопку. Под формой увидим сообщение, в котором содержится хэш, его мы должны вставить в файл /var/www/html/postfixadmin/config.local.php:

nano /var/www/html/postfixadmin/config.local.php

Image5

Обновляем страницу /postfixadmin/public/setup.php и входим на страницу с паролем, который вводили для генерации хэша. Если сервер настроен верно, в результате мы увидим страницу с проверками конфигурации. 

В самом низу расположена форма, в ней создаём админа. После успешного создания переходим на страницу /postfixadmin/public/login.php и авторизуемся в аккаунт, который только что создали.

В итоге вы будете перенаправлены на стартовый экран панели администрирования. 

Image2

Создаём почтовый ящик в PostfixAdmin

В браузере переходим по адресу /postfixadmin/public/. В верхнем меню выбираем «Список доменов → Новый домен». 

Далее в разделе «Обзор → создать ящик» вводим данные для тестового почтового ящика. 

Image4

Теперь вы можете проверить подключение с помощью почтовых клиентов. Параметры для подключения:

  1. Сервер — имя вашего сервера
  2. IMAP — 143 STARTTLS
  3. POP3 — 110 STARTTLS
  4. SMTP — 25 STARTTLS
  5. Логин и пароль — данные, которые вы указали при создании ящика

Заключение

В этой статье мы изучили, что представляет из себя домашний почтовый сервер, какие технологии и программное обеспечение используются для его настройки. 

Основное преимущество владения своим почтовым сервером — возможность полностью настроить его под себя: создать неограниченное количество почтовых ящиков, привязать псевдонимы, включать и выключать пользователей. Все эти возможности можно реализовать, арендовав облачное решение Timeweb Cloud и настроив сервер по инструкции из этой статьи. 

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

How to Create a Free Email Server on Windows Server 2022 With MailEnable

MailEnable is a free (standard edition) and robust email server solution for Windows platforms, offering a comprehensive suite of mail services.

It supports various protocols such as SMTP, POP3, IMAP, and webmail, making it an ideal choice for small to big businesses.

This article will guide you through the process of installing MailEnable on a Windows Server 2022 system, ensuring that you have a functional mail server to handle your organization’s email needs or even your personal.

This is the first project I have made for Windows Server. So, without further adieu let’s start!

Prerequisites

Before you begin the installation of MailEnable, ensure that your system meets the following requirements:

  1. Open Port 25 VPS: Get a Contabo VPS running Windows Server Datacenter 2022 because they don’t block port 25.
  2. Windows Server 2022: A fresh or existing installation of Windows Server 2022.
  3. System Requirements: Ensure your server meets the minimum requirements for running MailEnable. Have at least 1vCore, 4GB RAM, and 10GB Disk space. Contabo meets these requirements.
  4. Domain: I can vouch for Namecheap for affordability and security.

Step 1: Get a Windows VPS on Contabo

I’ve laid out the steps here on how to setup a Windows VPS on Contabo. Be sure to follow it.

Contabo Windows VPS

You should be able to connect to your Windows VPS by now.

Step 2. Get a Domain

Go to Namecheap and buy a domain. Avoid top-level domains like .work .date .top .fun .life .review .xyz .bid .stream .site .space .gdn .click .pro.

Instead get .com .net .io .co.uk .org top-level domains.

Register Domain on Namecheap

Step 3: Download MailEnable

  1. Visit the MailEnable website.
  2. Navigate to the ‘Download‘ section.
  3. Choose the appropriate version (Standard, Professional, or Enterprise) and download the installer. The Standard Edition is free.

Step 4: Set Hostname

By now you are already connected to your Windows VPS.

If you are plainly using your Windows VPS as a mail server, you will need to set a hostname. To do that, click the folder on the taskbar and choose This PC. Then right-click on the empty space and choose Properties.

Hostname MailEnable

Click Rename this PC and name your PC to mail.

Rename PC MailEnable Windows 2022

Finally, restart your Windows server.

Step 5: Install Microsoft IIS and Microsoft .NET Framework 3.5 or later

We need to install MailEnable prerequisite services first to enable it to work properly.

Click on the Start menu > select Server Manager.

In the Server Manager dashboard, click on Add roles and features. This will launch the Add Roles and Features Wizard.

Add Roles and Features

Click Next on the Before You Begin page.

Choose Role-based or feature-based installation and click Next.

Select Installation Type

Select the server where you want to install IIS (usually the local server is selected by default) and click Next.

Select a Server Pool

Scroll down and check the box next to Web Server (IIS).

A pop-up will appear asking to add required features. Click Add Features. Click Next.

Select Server Roles

Check the box next to .NET Framework 4.8.

Select Features

Click Next on the Web Server Role (IIS) page.

Select Role Services.

The default settings are usually sufficient. Ensure that the basic services you need are selected.

Click Next.

Select Role Services

Review your selections and click Install.

The installation process will begin. Wait for it to complete.

Confirm Installation Selections

Once the installation is complete, click Close. Restart your server.

Once the installation is complete, click Close.

Step 6: Run the Installer

Locate the downloaded installer file and double-click to run it.

Follow the on-screen instructions to begin the installation process.

Enter Your Name and Company Name

Select components. Be sure to choose the three options.

Select Components

Select a destination folder. The default location is Program Files.

Select a destination folder

Get Postoffice details. You should enter your domain and assign a password.

Get Postoffice Details

MailEnable needs a file storage to store email messages. Just choose the default location.

Store email MailEnable

Enter your domain. Just use the default DNS and use port 25.

SMTP Connector Configuration

Start the installation by clicking Next.

You will be prompted to select a web server. Just choose the default and click Next.

Select Webmail Web Root

MailEnable setup is now setting account credentials for services

MailEnable Installation is Finished

Step 7: Configuring MailEnable

After installation, you need to configure MailEnable to start handling emails.

Open MailEnable Management Console: Find this in the Start menu and search MailEnable.

MailEnable Admin

First, we need to enable integrated authentication.

Right-click Messaging Manager > Properties. Select the Security tab and check Enable Integrated Authentication.

Click Apply.

Enable Integrated Authentication

Next, select your domain and click Properties on the right side of the menu.

Check Use Integrated Authentication and Automatically create mailbox if successful login and one doesn’t exist.

Domain Properties

Next, we will create a self-signed certificate so that we can use authentication on our inbound and outbound connections.

In the Start menu, search for IIS.

IIS

Choose the localhost and double click Server Certificates.

Issue Self-Signed Certificate in IIS Windows Server

We will issue a Self-Signed certificate for our local host.

Click Create Self-Signed Certificate and specify a certificate name. Then click OK.

Create Self-Signed Certificate

Now that we have created a self-signed certificate, we will use it on our servers.

In MailEnable, go to Servers > localhost > on the right menu choose Properties > SSL. Then check the box and click Apply and OK.

Enable SSL Certificate to Use on Localhost MailEnable

We will now configure SMTP and IMAP services so that we can send and receive email messages.

Go to Services > localhost > Services and Connectors > SMTP.

Click Properties on the right menu and select the General tab.

Set the Local domain with your own domain and default mail domain to mail. Then click Apply. The SMTP services will restart.

Mark all checkboxes under Authentication/Security Types.

SMTP Properties General MailEnable

Next, go to the Inbound tab > Port Settings > Settings.

You can choose to have port 25 without authentication, but in this tutorial, we will be using Ports 465 and 587. Follow the settings I’ve made on the image below.

Click OK and Apply changes. The SMTP services will restart.

SMTP Port Settings MailEnable

On the Outbound Tab, select your IP address under Outbound IP Binding.

SMTP Properties Outbound IP Binding

Go to the Advanced SMTP tab.

Under Inbound Authentication, select Require authentication for all connections.

SMTP Properties Inbound Authentication

Next, we will configure our IMAP.

Go to Services > localhost >Services and Connectors > IMAP.

Check the box Also listen on the alternate port and set it to 993 and check the Require SSL checkbox.

IMAP Properties MailEnable

Next, on the Settings tab, mark all checkboxes under the Security option.

IMAP Properties MailEnable Settings

Click OK and Apply changes. The IMAP services will restart.

Now our SMTP and IMAP settings are configured, we will add mailboxes.

Expand Messaging Manager > Post Offices > Your Domain > Mailboxes and click New Mailbox.

Create New Mailbox MailEnable

I’d like to restart my server after this part for the mail domain to take effect.

Step 8. Map DNS Records and Reverse DNS

Now our MailEnable is set, we need to map our DNS

Create a free account on Cloudflare.

Login to your Namecheap and set the custom DNS to Cloudflare’s nameservers.

Cloudflare Nameservers

Set the A, MX, SPF, DKIM and DMARC records.

For A, CNAME, and MX records:

Type Name Content/Value
A @ yourServerIP
A mail yourServerIP
CNAME autoconfig mail.webshanks.shop
CNAME autodiscover mail.webshanks.shop
MX @ mail.webshanks.shop priority 10

For SPF, DKIM, and DMARC records:

SPF Record

Be sure to replace your IPv6 and IPv4 with our own IPs.

  • Type: TXT Record
  • Host: @
  • Value: v=spf1 a mx ip6:2a01:7a7:2:3343::f67:30f7 ip4:195.26.245.83 -all
  • TTL: Automatic

DMARC Record

We will use the following records.

  • Type: TXT Record
  • Name: _dmarc
  • Value: v=DMARC1; p=quarantine; adkim=r; aspf=r; pct=100
  • TTL: Automatic

DKIM Record

For our DKIM record, we will generate one on MailEnable.

Generate DKIM MailEnable

Check the Sign outgoing messages.

Create a New selector. You can name it like dkim or something similar. I’d like to add t=s tag in the DKIM.

DKIM Settings MailEnable Webshanks

Let’s take a look at our DNS management.

DNS management for webshanks MailEnable

This is what your DNS records look like.

Our final step in our mapping is the reverse DNS.

Head to your Contabo VPS control panel and go to Reverse DNS management.

Set it to mail.yourdomain.com

RDNS Management Contabo MailEnable

Step 9: Test our Email

For us to send an email, we will be using an email client. Plug the SMTP/IMAP relays and we are good to go!

I’m using Thunderbird to send and receive emails.

SMTP and IMAP Relay MailEnable

Now let’s send a test email to Gmail and Proton Mail to see if we can receive it. We’ll also send an email to Mail-Tester to see our results.

Testing Email MailEnable

Let’s see the results.

MailEnable Mail Tester Result 10 over 10 by Web Shanks

10/10 Score in Mail-Tester!
MailEnable Email Test to Gmail

We received the email directly to Gmail inbox!
MailEnable Email Test to Proton Mail

As well as to Proton Mail.

Hurrah we can now send emails!

Let’s try to send an email to the hard-to-get AOL Mail.

MailEnable Received Directly to Inbox in AOL Mail - Setup by Webshanks

Surprisingly, we received the mail directly to our inbox!

I’ve also sent this to my personal AOL Mail and it went right through the inbox. It’s not a coincidence!

FAQs

What versions of Windows Server does MailEnable support?

MailEnable supports all recent versions of Windows Server, including Windows Server 2022. For more information about their system requirements go here.

Can MailEnable handle large volumes of emails?

Yes, MailEnable is designed to handle large volumes of emails efficiently, especially the Professional and Enterprise editions.

Is there a webmail interface available with MailEnable?

Yes, MailEnable includes a webmail interface that can be accessed via a web browser, providing users with the ability to send and receive emails without needing a local email client.

How do I secure my MailEnable server?

Securing your MailEnable server involves configuring SSL/TLS for encrypted communications, setting up SPF, DKIM, and DMARC records, and regularly updating the server and MailEnable software to patch any vulnerabilities.

Conclusion

Installing and configuring MailEnable on Windows Server 2022 is quite challenging if you are new to Windows Server and MailEnable. But you can follow my step-by-step guide to setup your own MailEnable mail server on a Windows Server.

If you find my tutorial useful, you can buy me a coffee.

You can also check out my Linux-based email servers like Docker Mailserver, aaPanel, mailcow, CyberPanel, or iRedmail.

For further assistance, refer to the MailEnable Documentation or seek support from the MailEnable community.

Firstly, we wish to clarify that we have installed the mail server on Windows Server because it is mandatory DNS server for this to work. Using Windows Server as the operating system is not mandatory but against, you need a DNS server on a network computer (easy : on the same computer). For example : BIND (For Windows) program.

For information :
— If you use Windows Server as the operating system, you must install and configure the role «DNS Server». To do this, read our tutorial on Windows Server 2008: «Windows Server 2008 — DNS».
— This tutorial was made in Windows Server 2008. The windows may differ following versions thereof.
— The mail server is «hMailServer v5.3.3-B1879» (Production release)

  1. hMailServer installation
  2. hMailServer Database Setup
  3. hMailServer Security
  4. hMailServer Administrator
  5. Configuration
  6. Firewall
  7. Thunderbird client

1. hMailServer installation

Let «Full Installation» selected.

For the database containing the E-Mails, 2 choices available to you. Either a server SQL database integrated with hMailServer or MSSQL, MySQL or PostgreSQL external server.
For this tutorial, we installed WAMP which contains an Apache Web server (with PHP module) and a database server MySQL database. This will allow us to access the data of the mail server via PHPMyAdmin (or another similar script) through the web server.

Then click Install.

2. hMailServer Database Setup

The utility «hMailServer Database Setup» is displayed. It will allow you to install the database structure necessary for the operation of the mail server data.

Select «Create a new hMailServer» if it is the first installation of the Mail server. Otherwise choose another option to reuse an ase data previously created with this program.

In our case it is a MySQL server.

By default, the MySQL server is available with these settings (if the mail server is on the same machine as the MySQL server):
— Database server adress : 127.0.0.1 / Port : 3306
— Username : root
— Password : (no password). Warning : It is strongly recommended to secure the root account and create another user with password security.

You can put whatever you want as name database, but avoid spaces and long names.

Then you need to choose the Windows service that depends hMailServer. In our case, it depends on the service «wampmysqld» which represents the server MySQL database.

Then click «Next».

In the case of external MySQL server, hMailServer needs the «libmysql.dll (32 Bit)» file to be able to connect to it.

In Wamp, this file is located in «c:\wamp\bin\mysql\mysqlx.x.xx\bin». Copy this file into the folder specified by hMailServer (in our case : C:\Program Files (x86)\hMailServer\Bin\libmysql.dll).

If all goes well, the database should be installed correctly.

3. hMailServer Security

You must now define a password for the administration of the mail server via the «hMailServer Administrator» program.

The installation is now complete. Leave the check box to automatically start the administration utility mail server.

4. hMailServer Administrator

Click the «Connect» button.

Enter the password you just set.

5. Configuration

We will now configure the mail server. The grounds, email accounts, SMTP server, …

To begin, click on the «Add Domain» button.

Enter your domain name (virtual if there is an installed and configured on your local home network DNS server or stored on the Internet if this mail server is accessible from outside the area).

Optional : You can define a signature for emails sent through your mail server, a size limit (total size, size mail, …) electronic signatures (for SSL), …

User accounts (the famous mail address) is then added by going to «Domains -> InformatiWebLAN.net -> Accounts». Then click the «Add» button.

We will create an email address named «tutoriel@InformatiWebLAN.net» with a password. It is possible to change the level of administration for this account.
You can also define :
— Size Limits
— An automatic response (in the absence of the person, for example, or to indicate that the message has been sent to the person concerned)
— Transfer emails to another email address
— A signature (to be displayed at the end of each message)
— An external account (in this case, the domain name must be registered on the Internet). Some registrars require that the MX record is set.
— etc.

We will then configure the SMTP server hMailServer. To do this, go to «Settings -> Protocols -> SMTP».
Enter your domain name in the «Local host name» box and enter a remote SMTP server to send emails outside of your domain.
In our case, we used the Gmail server (which requires authentication) and uses port «465» instead of the standard port «25». When you ordered your Internet subscription, you will have received the SMTP address and pop servers. You can use them for your mail server.

In the Advanced tab, you can specify the local IP address of your server.

You can also create the MX record in DNS Manager in Windows Server.

So that our server can send emails to other areas than ours (eg to Gmail, Hotmail, Yahoo, …) we will define a road. To do this, go to «Settings -> Protocols -> SMTP -> Routes».

Then enter the same information as above.
In newer versions, you have two choices below which have emerged. Select «When sender matches route, treat sender as : A local email address» and «When recipient matches route, treat recipient as : A remote email address.» This means that the sender is the email address «xxxx@InformatiWebLAN.net» and the recipient «xxxxx@xxxxx.xx».

If the SMTP server requires an «Authentication», specify the necessary credentials in the «Delivery» tab then click «Save».

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Сколько лет windows 2000
  • Операционная система freedos или windows 10 что лучше
  • Install github windows 10
  • Почему может тормозить windows 10
  • Windows 7 переместить окно с помощью клавиатуры