С чего начинается почтовый сервер

вам письмо

Как и любая другая задача, почтовый сервер начинается с определения цели, зачем он нужен и какие проблемы должен решать. И уже потом цель определяет средства.

ВАЖНО! Здесь рассматриваются варианты задач исключительно в контексте веб-сайта.

  1. Если нужно отправлять несколько писем в день
  2. Если нужно отправлять много писем в день
  3. Если нужно делать почтовые рассылки
  4. Если нужно обрабатывать входящую почту
  5. Примеры конфигурации
  6. Несколько слов об SMTP

Если нужно отправлять несколько писем в день

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

Отправку писем с сайта можно делать с помощью SMTP-клиентов (ApMailer, Swift Mailer) через SMTPS (465 порт) с авторизацией по логину и паролю.

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

Message rejected under suspicion of SPAM

А вот что ответила поддержка:

"Если вы хотите рассылать много писем, лучше воспользоваться специальным рассылочным сервисом."

Я уже много лет пользуюсь почтой Яндекса, чтобы собирать логи с ошибками, получать отзывы с сайта, и никаких проблем не возникало. Но вот с CRM-системой почта Яндекса работать наотрез отказалась.

[Наверх]

Если нужно отправлять много писем в день

Если у вас, к примеру, интернет-магазин и много писем с разного рода уведомлениями (например, клиентам или менеджерам), то есть два пути:

  1. Сторонние сервисы (например, MailChimp, TurboSMTP). Если набраться терпения и желания, то можно разобраться, как это работает.
  2. Настроить свой сервер для отправки писем.

Преимущество сторонних сервисов в том, что проблемы доставки почты будете решать не вы, а специально обученные люди (в теории). Но вы никак не контролируете работу этих сервисов, а значит они могут "отвалиться" в любой момент (как правило самый неподходящий). Не стоит забывать и про РКН, который в любой момент времени может заблокировать любой внешний IP (яркий пример CloudFlare).

Свой сервер вы контролируете сами и "отвалиться" он так просто уже не сможет.

[Наверх]

Если нужно делать почтовые рассылки

Если вы не используете Bitrix, то для массовых рассылок подойдут специализированные сервисы, потому что:

  1. Автоматически добавляют ссылку "отписаться" (иначе письмо будет считаться спамом).
  2. Отслеживают, кому письмо пришло, а кому нет.
  3. Ведут статистику, кто прочитал письмо, кто отправил в спам и т.д.

Конечно, это всё можно сделать и на своём сервере, но зачем?

[Наверх]

Если нужно обрабатывать входящую почту

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

[Наверх]

Примеры конфигурации

Предположим, что у вас есть сайт mydomain.tld, который находится на сервере xx.xx.xx.xx. Рассмотрим разные возможные конфигурации.

Почта для домена от Яндекса + свой сервер исходящих сообщений для уведомлений с сайта (на том же сервере)

Что нужно сделать:

При такой настройке письма с сайта можно отправлять через sendmail (функция mail() в PHP), входящую почту обрабатывает Яндекс.

[Наверх]

Почта для домена от Яндекса + свой SMTP-сервер исходящих сообщений на yy.yy.yy.yy

Что нужно сделать:

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

[Наверх]

Свой SMTP-сервер для нескольких доменов на сервере yy.yy.yy.yy

Что нужно сделать:

[Наверх]

Почта для домена от Яндекса + свой сервер входящих и исходящих сообщений на yy.yy.yy.yy

Если основной домен уже настроен для работы со сторонним сервисом, то остаётся использовать только другой домен (можно поддомен).

Что нужно сделать:

При такой настройке входящие письма для xxx@mydomain.tld будут попадать на Яндекс, а письма для xxx@mail.mydomain.tdl будут попадать на сервер yy.yy.yy.yy, который может сохранять их в базу и пересылать в зависимости от внешних условий.

[Наверх]

Несколько слов об SMTP

SMTP — это протокол передачи писем от одного узла другому. Чтобы представить этот процесс, мысленно напишите записку мистеру А, положите её в конверт, на котором укажите в качестве получателя мистера Б, а потом отдайте конверт кому-нибудь, кто знает протокол SMTP. Если случайный "кто-нибудь" взял письмо, то рано или поздно оно придёт в ящик мистера Б. Никаких логинов, никаких паролей, никаких подтверждений. Бред, скажете вы? Но именно так и работает этот странный протокол.

Мы привыкли, что для отправки писем нужны учётные записи, логины, пароль. Но SMTP этого вовсе не требует, это требования конкретных серверов Google, Яндекс и т.п. Но ничто не мешает вам подключиться к какому-нибудь почтовому серверу на 25 порт и передать письмо любому адресату, какому пожелаете.

Но почему мы не тонем в тоннах спама? На самом деле тонем, но спасибо гигантам IT, они научились фильтровать спам достаточно эффективно, чтобы мы могли пользоваться почтой без особых проблем.

Если вам нужно настроить почтовый сервер, то это значит, что вам нужен SMTP-сервер (например, POSTFIX или EXIM). Ещё один "кто-нибудь", кто будет передавать письма дальше по цепочке. При этом разделение на сервер "входящей" и "исходящей" почты чисто условное. В обоих случаях это SMTP-сервер.

А как же IMAP, POP3? Эти протоколы дают доступ к письмам, которые уже находятся на почтовом сервере. Для отправки и приёма писем они не требуются.

[Наверх]

Хорошая статья, мне понравилась. Оставлю отзыв!