Установка і настройка SMTP сервера на Windows Server 2016/2012 R2

Ви можете встановити 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 сервер для застосування змін.

Примітка.

  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)

Перевірка роботи 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 і протестували відправку листів через нього.