
📧 Як встановити та налаштувати SMTP в WordPress: покроковий посібник
Листи з сайту не доходять до користувачів? Адресати скаржаться, що сповіщення про замовлення або відновлення пароля потрапили в спам? З цією проблемою стикається майже кожен власник WordPress-сайту в перші місяці після запуску.
Причина, спосіб надсилання листів за замовчуванням. WordPress використовує вбудовану функцію mail() мови PHP, і більшість хостинг-провайдерів не налаштовують її належним чином. Листи йдуть із неправильними заголовками, без DKIM-підпису, і поштові сервіси на кшталт Gmail чи Mail.ru відправляють їх просто до теки «Спам». Гірше того, частина листів просто губиться, а ви про це навіть не дізнаєтеся.
Правильне рішення, SMTP. Один раз налаштовуєте, і листи з сайту починають доходити стабільно. Показую два способи: простий (через плагін) і ручний (через код), щоб ви могли обрати під свою ситуацію.
💡 Швидкий огляд:
- Дізнаєтеся, чому PHP-пошта WordPress ненадійна і як SMTP вирішує проблему доставки
- Налаштуєте надсилання через плагін Easy WP SMTP за 5 хвилин, без редагування коду
- Опануєте ручний метод через wp-config.php для тих, хто воліє обходитися без зайвих плагінів
- Перевірите роботу SMTP тестовим листом і дізнаєтеся, на що звернути увагу при виборі поштового провайдера
Що таке SMTP і чому ваш сайт втрачає листи
SMTP розшифровується як Simple Mail Transfer Protocol. Якщо зовсім просто — це виділений протокол для надсилання електронної пошти, який працює інакше, ніж mail() PHP.
Коли WordPress надсилає лист через стандартну функцію, він просто «скидає» його операційній системі сервера. Далі, як пощастить: лист може піти з хосту без SPF-запису, без DKIM, із чужою From-адресою. Поштовий сервіс отримувача бачить підозрілий лист і відправляє його в спам. Або просто відкидає, жодного сповіщення про помилку ви не отримаєте.
SMTP-сервер, навпаки, встановлює пряме з'єднання з поштовим сервісом адресата. Він авторизується, передає DKIM-підпис вашого домену і гарантує, що заголовки листа коректні. Результат: ваші листи доходять до «Вхідних», а не в спам.
Додатковий плюс, логування. Більшість SMTP-плагінів для WordPress ведуть журнал надісланих листів: ви бачите, що пішло, кому і коли. Якщо лист не доставлено, знаєте про це одразу, а не через тиждень від клієнта.
Спосіб 1: Встановлення SMTP через плагін Easy WP SMTP
Найпростіший і найнадійніший спосіб для переважної більшості сайтів, поставити плагін. Я рекомендую Easy WP SMTP: понад пів мільйона активних встановлень на WordPress.org, рейтинг 4,6 з 5 і стабільні оновлення. Плагін безкоштовний і підтримує не лише будь-який зовнішній SMTP-сервер, а й прямі інтеграції з Gmail, Outlook, Brevo, SendGrid, Mailgun і SendLayer, можна підключитися через API без введення портів і шифрування.

Крок 1. Встановіть плагін. Зайдіть в адмінку WordPress: Плагіни → Додати новий. У рядку пошуку введіть «Easy WP SMTP». Натисніть «Встановити», потім «Активувати».
Крок 2. Перейдіть до налаштувань. У бічному меню адмінки з'явиться пункт Easy WP SMTP. Відкрийте його, ви потрапите на вкладку «Загальні» (General).
Крок 3. Заповніть дані SMTP-сервера. Ось що потрібно ввести:

From Email Address, адреса, з якої йтимуть листи. Використовуйте той самий email, що вказаний у налаштуваннях WordPress (розділ Налаштування → Загальні). Більшість хостерів блокують надсилання з чужих адрес, простіше не ризикувати.
From Name, ім'я відправника, яке побачать отримувачі. Зазвичай це назва сайту, наприклад «SiteName Support».
Mailer, виберіть «Other SMTP», якщо підключаєте поштову скриньку свого домену або хостингу. Якщо використовуєте Gmail / Outlook / Brevo / SendGrid, виберіть відповідний пункт, плагін проведе вас через OAuth-авторизацію без ручного введення параметрів.

Для варіанту «Other SMTP» заповніть:
SMTP Host, адреса вашого поштового сервера. Для хостингу це зазвичай
mail.ваш-домен.com. Для сторонніх сервісів провайдер видає хост при створенні скриньки.Encryption, виберіть
SSL(порт 465) абоTLS(порт 587). Сучасні сервери віддають перевагу TLS на порту 587, але уточніть у вашого поштового провайдера.SMTP Port, 465 для SSL, 587 для TLS. Це стандартні значення, але хостер може використовувати нестандартний порт, звіртеся з його документацією.
Authentication, увімкніть перемикач «Yes». Без автентифікації SMTP працювати не буде.
SMTP Username і SMTP Password, логін і пароль від вашої поштової скриньки. Зазвичай логін збігається з повною адресою email.
Крок 4. Надішліть тестовий лист. Прокрутіть сторінку до секції «Test Email». У полі «Send To» введіть адресу, до якої у вас є доступ (можна свою ж). Поля «Subject» і «Message» заповніть довільно, наприклад, «SMTP Test» і «Перевірка надсилання». Натисніть «Send Test Email».
Якщо все налаштовано правильно, вгорі екрана з'явиться зелене сповіщення про успішне надсилання. Лист прийде на вказану адресу протягом кількох секунд. Не прийшов, перевірте теку «Спам»; якщо і там немає, перевірте ще раз параметри хосту, порту і пароля.
Крок 5. Увімкніть логування. У підменю Easy WP SMTP відкрийте вкладку «Email Log» і активуйте запис логів. Тепер кожен надісланий лист зберігатиметься в журналі з датою, отримувачем і статусом. Якщо через місяць клієнт скаже «я не отримував лист із кодом», ви відкриєте лог і побачите: лист пішов і був доставлений, проблема на боці клієнта.
Спосіб 2: Ручне налаштування SMTP через wp-config.php
Цей метод, для тих, хто принципово не хоче ставити плагін заради однієї функції. Мінус очевидний: жодного інтерфейсу, логування і тестування з адмінки не буде. Всі зміни, лише редагуванням файлів.
Важливо: перед редагуванням wp-config.php обов'язково зробіть резервну копію сайту. Помилка в цьому файлі викличе «білий екран смерті», і відновити доступ можна буде лише через FTP або файловий менеджер хостингу.
Крок 1: Додайте константи SMTP у wp-config.php
Підключіться до сервера через FTP або через файловий менеджер хостингу. Знайдіть файл wp-config.php у корені сайту і додайте наступний код ПЕРЕД рядком /* That's all, stop editing! Happy publishing. */:
1 // SMTP-конфигурация для отправки почты WordPress 2 define( 'SMTP_HOST', 'mail.ваш-домен.com' ); // Адрес SMTP-сервера 3 define( 'SMTP_AUTH', true ); // Включить аутентификацию 4 define( 'SMTP_PORT', '587' ); // Порт: 587 (TLS) или 465 (SSL) 5 define( 'SMTP_SECURE', 'tls' ); // Шифрование: tls или ssl 6 define( 'SMTP_USERNAME', 'user@ваш-домен.com' ); // Логин почтового ящика 7 define( 'SMTP_PASSWORD', 'ваш-пароль' ); // Пароль 8 define( 'SMTP_FROM', 'user@ваш-домен.com' ); // Адрес отправителя 9 define( 'SMTP_FROMNAME', 'SiteName Support' ); // Имя отправителя
Замініть дані на свої: хост, порт, логін, пароль. Якщо поштовий провайдер використовує SSL на порту 465, змініть SMTP_PORT на '465', а SMTP_SECURE на 'ssl'.
Крок 2: Підключіть константи до PHPMailer
Самі по собі константи у wp-config.php нічого не роблять, WordPress не знає, що з ними робити. Потрібно передати їх об'єкту PHPMailer через хук phpmailer_init. Додайте цей код у файл functions.php вашої дочірньої теми або через плагін Code Snippets (рекомендую, не загубиться при оновленні теми):
1 /** 2 * Настройка SMTP через константы из wp-config.php 3 */ 4 add_action( 'phpmailer_init', 'sdstudio_smtp_configure' ); 5 function sdstudio_smtp_configure( $phpmailer ) { 6 $phpmailer->isSMTP(); 7 $phpmailer->Host = SMTP_HOST; 8 $phpmailer->SMTPAuth = SMTP_AUTH; 9 $phpmailer->Port = SMTP_PORT; 10 $phpmailer->SMTPSecure = SMTP_SECURE; 11 $phpmailer->Username = SMTP_USERNAME; 12 $phpmailer->Password = SMTP_PASSWORD; 13 $phpmailer->From = SMTP_FROM; 14 $phpmailer->FromName = SMTP_FROMNAME; 15 }
Що тут відбувається: WordPress викликає хук phpmailer_init перед кожним надсиланням листа і передає в нього екземпляр класу PHPMailer. Функція sdstudio_smtp_configure конфігурує цей об'єкт значеннями з констант, і лист іде через SMTP, а не через mail() PHP.
Якщо ви використовуєте поштову скриньку на своєму домені (наприклад admin@ваш-сайт.com, створену в cPanel хостингу), дані для SMTP-хосту беріть із панелі керування хостингом. Зазвичай там є розділ «Підключення до пошти» або «Email Accounts», де для кожної скриньки вказані хост, порт і налаштування шифрування.
Крок 3: Перевірте надсилання
Найпростіший спосіб перевірити, ініціювати надсилання системного листа WordPress. Наприклад, запитайте скидання пароля через форму входу (/wp-login.php → «Забули пароль?»). Якщо лист прийшов, SMTP працює.
Хочете точніший тест, тимчасово додайте цей код у functions.php (після перевірки видаліть):
1 add_action( 'init', function() { 2 wp_mail( '[email protected]', 'SMTP Test', 'Сообщение отправлено через SMTP!' ); 3 } );
Оновіть будь-яку сторінку сайту, на вашу адресу піде тестовий лист. Не забудьте прибрати код після перевірки, інакше лист надсилатиметься при кожному оновленні сторінки.
Спосіб 3: Альтернативні SMTP-плагіни
Easy WP SMTP, не єдиний варіант. Якщо з якоїсь причини він не підійшов, ось ще три перевірені безкоштовні плагіни з активною встановленою базою від 200 000 сайтів:
WP Mail SMTP, найпопулярніший SMTP-плагін у репозиторії WordPress (3 млн+ встановлень). Безкоштовна версія підключає будь-який SMTP-сервер. Платна, додає інтеграції з SendLayer, Amazon SES, Microsoft 365 і Zoho Mail, а також докладні логи і звіти про помилки.
Post SMTP, повністю безкоштовний, з відкритим вихідним кодом. Вміє надсилати листи через SMTP, Gmail API, Microsoft 365 API, SendGrid, Mailgun, Brevo. Вбудований Email Log із фільтрацією і повторним надсиланням. Хороший вибір, якщо потрібен максимум можливостей без оплати.
FluentSMTP, мінімалістичний і швидкий плагін від творців FluentCRM. Підтримує Amazon SES, Mailgun, SendGrid, SparkPost, Elastic Email і будь-який SMTP-сервер. Інтерфейс простіший, ніж у конкурентів, і плагін практично не навантажує адмінку.
Усі три варіанти мають рейтинг 4,5+ і регулярно оновлюються. Принцип налаштування скрізь однаковий: встановлюєте плагін → вводите дані поштового сервера → надсилаєте тестовий лист → вмикаєте логування.
На відміну від ручного методу через wp-config.php, будь-який із цих плагінів дає щонайменше журнал надісланих листів і можливість протестувати з'єднання з адмінки. Для сайту, який надсилає більше кількох листів на тиждень, ці функції швидко стають необхідністю, а не просто зручністю.
Тестування SMTP: як переконатися, що все працює
Налаштували плагін чи код, перевірте результат. Ось чек-лист із трьох пунктів, який закриває всі можливі проблеми:
1. Тестовий лист із плагіна. Якщо використовували Easy WP SMTP, надішліть тест через вбудовану функцію (вкладка «Test Email»). Лист пішов і прийшов до «Вхідних», чудово. Прийшов до «Спаму», перевірте, що в «From Email Address» вказана реальна адреса на вашому домені (не @gmail.com, якщо сайт на ваш-домен.com).
2. Перевірка заголовків листа. Відкрийте отриманий тестовий лист і подивіться «оригінал» / «вихідний код» повідомлення (в Gmail: три крапки → «Показати оригінал»). Знайдіть рядки SPF, DKIM і DMARC. Хоча б SPF: PASS має бути. Якщо всі три показують PASS, ваша доставка максимальна.
3. Перевірка через форму на сайті. Пройдіть користувацький сценарій: заповніть контактну форму, запитайте скидання пароля, оформте тестове замовлення в WooCommerce. Кожна з цих дій має породити лист, переконайтеся, що всі вони приходять. Якщо якийсь лист не пішов, швидше за все, конкретний плагін (Forms / WooCommerce) використовує власний спосіб надсилання в обхід загального SMTP. Це рідкість, але перевірте налаштування такого плагіна, зазвичай там є опція «Use WordPress mail» або вибір поштового провайдера.
Якщо віддаєте перевагу відеоформату, у цьому туторіалі показано повне налаштування SMTP через плагін WP Mail SMTP з нуля до першого надісланого листа. Принцип однаковий для будь-якого з розглянутих плагінів.
⁉️🤔 Часті запитання
Чому листи з мого сайту йдуть, але приходять у спам?
Основна причина, відсутність DKIM- і SPF-записів у домену. PHP-функція
mail()не підписує листи, і поштові сервіси бачать «анонімне» надсилання. SMTP-плагін надсилає листи від імені вашого поштового сервера, у якого ці записи вже налаштовані. Більшість хостингів додають базовий SPF-запис автоматично через cPanel, DKIM і DMARC налаштовуються вручну в панелі DNS за 10 хвилин.
Який SMTP-порт вибрати: 465 чи 587?
Порт 587 із шифруванням TLS, сучасний стандарт IETF. Порт 465 із SSL, застарілий, але широко підтримується. Якщо провайдер приймає обидва, вибирайте 587/TLS. Не йде, пробуйте 465/SSL. На практиці більшість shared-хостингів у 2026 році працюють з обома портами, VPS частіше вимагають 587/TLS. Помилка з'єднання після налаштування, першим ділом перемкніть порт і шифрування.
Чи можна використовувати безкоштовний Gmail для надсилання листів із сайту?
Так, але з обмеженням: 500 листів на день для особистих акаунтів і до 2 000 для Google Workspace. Для магазинів і членських сайтів надійніші транзакційні сервіси: Brevo (300 листів/день безкоштовно), SendGrid (100/день), Mailgun або Amazon SES. Підключити Gmail найпростіше через Easy WP SMTP: вибираєте mailer «Gmail» і проходите OAuth-авторизацію за пару кліків.
Чи потрібен SMTP-плагін, якщо хостинг вже налаштував пошту?
Поштовий сервер хостингу і надсилання з WordPress, дві різні ланки. Хостинг приймає пошту для домену, але WordPress продовжує слати через
mail()PHP без авторизації. Результат той самий: спам або втрата листів. SMTP-плагін змушує WordPress використовувати поштовий сервер правильно. Простий тест: відкрийте «оригінал» листа з сайту і знайдітьX-Mailer. Якщо тамPHPMailerбез SMTP, плагін необхідний.
Плагін показує помилку «SMTP Error: Could not authenticate», що робити?
Три часті причини. Перша: пароль містить спецсимволи (решітка, долар, амперсанд), які плагін неправильно екранує, змініть на літерно-цифровий. Друга: хостинг вимагає інший порт, перемкніть 587↔465 і TLS↔SSL. Третя: провайдер блокує вихідний SMTP-трафік на загальному тарифі, уточніть у підтримці. Якщо нічого не допомагає, перемкніться на API-інтеграцію: наприклад, Gmail API через OAuth надійніший за парольну автентифікацію.
Який спосіб налаштування SMTP вибрати для вашого сайту
Відповідь залежить від трьох факторів: обсяг листів, технічний комфорт і бюджет.
Якщо сайт надсилає до 100 листів на день, ставте Easy WP SMTP, підключайте будь-яку поштову скриньку і закривайте питання за 5 хвилин. Безкоштовний тариф Brevo через API-інтеграцію цього ж плагіна дає 300 листів на день взагалі без налаштування SMTP-портів, просто реєструєтеся, отримуєте API-ключ, вставляєте в плагін, готово.
Якщо сайт, магазин на WooCommerce на 500+ замовлень на місяць, підключайте транзакційний сервіс: Mailgun, SendGrid або Amazon SES. Вони заточені під масове надсилання транзакційних листів і дають детальну аналітику по кожному листу (доставлено / відкрито / клікнуто). Easy WP SMTP підтримує всі три через API без мороки з портами.
Якщо ви розробник і не хочете зайвих плагінів, ручний метод через wp-config.php працює, але пам'ятайте: без логування ви сліпі. Додайте хоча б простий лог-файл через хук wp_mail_failed або поставте FluentSMTP, він практично невагомий і дає повноцінний журнал листів.
Головне, не залишайте WordPress на стандартній PHP-пошті. П'ять хвилин на встановлення SMTP-плагіна позбавлять вас втрачених замовлень, пропущених звернень до підтримки і репутаційних проблем із доменом, який поштові сервіси позначили як джерело спаму.



