- Home »

Как отправлять письма с VPS? Практика для SEO-шников, вебмастеров и не только
Если у тебя есть свой сайт, ты делаешь рассылки, или просто хочешь автоматизировать отправку писем — рано или поздно встаёт вопрос: как отправлять email с VPS (виртуального сервера)? Кто-то хочет уведомлять юзеров, кто-то — слать рассылки, кто-то — подтверждать регистрации. И вот тут начинается магия: письма не доходят, попадают в спам, или твой сервер внезапно оказывается в чёрных списках. Давай разберёмся, как всё устроено, и как сделать, чтобы письма действительно работали, а не улетали в никуда.
Почему вообще отправлять письма с VPS?
- Не хочется зависеть от сторонних сервисов (Mailgun, SendGrid, UniSender и т.д.)
- Больше контроля над отправкой и шаблонами
- Можно сэкономить при больших объёмах
- Свой SMTP — это гибкость и автоматизация
Но есть и обратная сторона — геморрой с настройкой и риски попасть в спам. Давай по порядку.
Как это работает: схема отправки email с VPS
В упрощённом виде схема такая:
- Ты или твой скрипт (PHP, Python, Node.js и т.д.) формирует письмо
- Письмо отправляется через SMTP-сервер (может быть локальным или внешним)
- SMTP-сервер связывается с почтовым сервером получателя (Gmail, Яндекс, Mail.ru и т.д.)
- Письмо доходит до инбокса (или летит в спам, если что-то не так)
Варианты отправки писем с VPS
- Через встроенный SMTP VPS — ставишь свой почтовый сервер (Postfix, Exim, Sendmail)
- Через сторонний SMTP — отправляешь письма через чужой SMTP (например, Gmail, Яндекс, Mailgun и пр.)
- Через API почтовых сервисов — используешь API сторонних сервисов (Mailgun, SendGrid и др.)
Вариант 1: Свой SMTP-сервер на VPS (Postfix/Exim)
Это самый “олдскульный” и гибкий вариант, но и самый сложный. Ты ставишь на VPS почтовый сервер (чаще всего Postfix или Exim), настраиваешь его, и отправляешь письма напрямую.
Плюсы:
- Полный контроль над отправкой
- Можно кастомизировать всё что угодно
- Не зависишь от чужих лимитов
Минусы:
- Сложная настройка (SPF, DKIM, PTR, DMARC, TLS и т.д.)
- Риск попасть в спам или в блэклисты
- На дешёвых VPS часто закрыт 25 порт (SMTP) — письма не уйдут
- Почтовые гиганты (Gmail, Яндекс) очень не любят такие письма
Пример установки Postfix на Ubuntu:
sudo apt update
sudo apt install postfix mailutils
Во время установки выбери “Internet Site”, укажи свой домен.
Настройка SPF, DKIM и PTR — без этого письма будут улетать в спам!
- SPF — в DNS домена добавь TXT-запись типа:
v=spf1 mx ip4:IP_ТВОЕГО_VPS ~all
- DKIM — ставь OpenDKIM, генерируй ключи, добавляй в DNS
- PTR (Reverse DNS) — настрой у хостера обратную зону (IP → твой домен)
- DMARC — ещё одна TXT-запись в DNS, например:
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
Пример отправки письма через mail:
echo "Текст письма" | mail -s "Тема письма" [email protected]
Кейс: почему письма не доходят?
- IP VPS в чёрных списках (проверь на mxtoolbox)
- Нет SPF/DKIM/PTR — спам-фильтры режут всё подряд
- Порт 25 закрыт хостером (часто на Hetzner, DigitalOcean и др.)
- Слишком много писем — антиспам срабатывает
Вариант 2: Отправка через внешний SMTP (Gmail, Яндекс, SendPulse, Mailgun и др.)
Самый популярный и простой способ. Ты просто используешь SMTP-аккаунт стороннего сервиса (например, smtp.gmail.com, smtp.yandex.ru, smtp.mailgun.org), и отправляешь письма через него.
- Безопаснее и проще
- Не нужно настраивать свой почтовик
- Письма реже попадают в спам
Минусы — есть лимиты (например, Gmail — 100-500 писем/день), могут банить за спам, нужна регистрация и подтверждение домена.
Пример отправки через Gmail с помощью msmtp:
sudo apt install msmtp
В ~/.msmtprc
:
account gmail
host smtp.gmail.com
port 587
from [email protected]
auth on
user [email protected]
password your_password
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default : gmail
Отправка письма:
echo "Текст письма" | msmtp [email protected]
SMTP для рассылок (Mailgun, UniSender, SendPulse):
- Регистрируешься на сервисе
- Добавляешь домен, подтверждаешь его
- Получаешь SMTP-логин/пароль
- Вставляешь в свою CMS, скрипт или приложение
Плюсы — высокая доставляемость, аналитика, защита от спама, есть бесплатные тарифы. Минусы — платно при больших объёмах, свои правила, могут забанить за “серые” рассылки.
Вариант 3: Использование API почтовых сервисов
Если ты не хочешь возиться с SMTP, многие сервисы (Mailgun, SendGrid, UniSender) дают API для отправки писем. Это удобно для интеграции с сайтами, CRM, ботами, дорвеями.
- Регистрируешься, получаешь API-ключ
- Используешь curl, библиотеки (Python, PHP, Node.js) для отправки
Пример для Mailgun (curl):
curl -s --user 'api:YOUR_API_KEY' \
https://api.mailgun.net/v3/YOUR_DOMAIN/messages \
-F from='[email protected]' \
-F to='[email protected]' \
-F subject='Hello' \
-F text='Testing Mailgun API!'
Частые ошибки новичков
- Пытаются отправлять с VPS без настройки SPF/DKIM/PTR — письма сразу в спам
- Используют IP-шники из чёрных списков
- Забывают про лимиты SMTP у Gmail/Яндекс
- Оставляют открытый SMTP — сервер становится рассадником спама (open relay)
- Не проверяют доставляемость — думают, что всё работает, а письма никто не видит
Плюсы и минусы подходов
Вариант | Плюсы | Минусы |
---|---|---|
Свой SMTP (Postfix/Exim) | Гибкость, нет лимитов, полный контроль | Сложная настройка, высокий риск спама, могут заблокировать порт 25 |
Внешний SMTP (Gmail/Яндекс) | Просто, безопасно, высокая доставляемость | Лимиты, могут забанить, не для массовых рассылок |
API почтовых сервисов | Удобно, высокая доставляемость, аналитика | Платно при больших объёмах, требуется регистрация и подтверждение домена |
Мифы и лайфхаки
- Миф: “Куплю VPS и буду слать рассылки без ограничений”.
Реальность: 99% писем уйдёт в спам, IP быстро попадёт в блэклисты, VPS могут заблокировать. - Миф: “Gmail SMTP — бесплатное решение для рассылок”.
Реальность: Лимиты 100-500 писем в день, за подозрительную активность аккаунт банят. - Лайфхак: Для массовых рассылок — только специализированные сервисы (Mailgun, UniSender, SendPulse). Для транзакционных писем — можно использовать внешний SMTP.
- Лайфхак: Проверяй доставляемость на mail-tester.com и mxtoolbox.com
- Лайфхак: Не шли письма с “no-reply@ip-адрес”, указывай свой домен и подписывай письма DKIM
Пошаговый чек-лист для отправки писем с VPS
- Проверь, открыт ли порт 25 (или 587) на VPS
- Проверь, не в чёрных ли списках твой IP (mxtoolbox)
- Настрой SPF, DKIM, PTR, DMARC для своего домена
- Выбери способ отправки: свой SMTP, внешний SMTP, API
- Протестируй отправку на mail-tester.com
- Следи за лимитами и репутацией домена/IP
Похожие решения
- Использование готовых почтовых панелей (например, Mailcow, Mail-in-a-Box)
- Использование CMS-плагинов для рассылок (WP Mail SMTP для WordPress, PHPMailer для PHP и др.)
- Аренда выделенного IP у хостера для чистой репутации
- Использование VPS только как клиента (а письма — через сторонний SMTP или API)
Заключение: что выбрать и почему?
Если тебе нужна рассылка или отправка писем с VPS, лучше всего использовать внешний SMTP или API почтовых сервисов. Это проще, быстрее, безопаснее, и письма реально доходят до адресатов. Свой почтовый сервер на VPS — это для энтузиастов, либо если ты понимаешь все риски и умеешь настраивать почтовики.
Рекомендация: Для массовых рассылок — только профессиональные сервисы (Mailgun, UniSender, SendPulse, SendGrid и др.). Для уведомлений и транзакционных писем — внешний SMTP (Gmail, Яндекс, корпоративный почтовик). Всегда настраивай SPF, DKIM, PTR и проверяй репутацию домена/IP. Не забывай тестировать доставляемость!
Если остались вопросы — гугли официальные доки, общайся на профильных форумах и не стесняйся тестировать разные решения. Удачных рассылок и чистых инбоксов!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.