Привет, меня зовут Никита, я backend-разработчик в компании ИНТЕРВОЛГА. Работаю в компании уже 3 года, и за этот срок достаточно часто мне приходилось возиться с установкой и конфигурированием собственного почтового сервера для разных задач (см. далее) клиентов.
Сначала это было болью, каждая такая задача требовала понимания проблем каждого клиента, путей их решения, принципов работы почтового сервера и способов его тестирования, чего в начале карьеры у меня не было. В итоге приходилось по крупицам собирать информацию о составных частях поставленной задачи из различных источников.
В этой статье хотелось бы поделиться накопленным опытом, описать возможные трудности и подводные камни, с которыми можно столкнуться в похожих кейсах, и показать некую roadmap решения.
Путь начинается с того, как с нуля, по вводным условиям определить объем работ, и заканчивается финальной реализацией почтового сервера и его тестированием.
Я не видел в Сети и на Хабре цельной инструкции такого рода — и решил написать свою.
КАК СОЗДАТЬ ЭЛЕКТРОННУЮ ПОЧТУ В 2023 ГОДУ/ПОШАГОВАЯ ИНСТРУКЦИЯ
Статья не претендует на то, чтобы рассказать про всё сразу и максимально подробно (сомневаюсь, что это реализуемо). Наоборот, я стремился описать сложные и комплексные вещи простым языком. Слишком обширные темы, уже давно разобранные сообществом, я опускал.
Главной целью было дать новичку, который закопается в дебрях “почтовых интриг”, указатель, в какую сторону копать при возникновении типовых вопросов и проблем. Надеюсь, что эта статья окажется полезной и найдет своего читателя. Приступим!
Зачем ставить свой почтовик?
Электронная почта стара как мир, и, казалось бы, уже давно наступил момент, когда она должна выйти из моды и уступить место современным способам общения в Сети: разнообразным мессенджерам и социальным сетям. Однако даже сейчас спрос на обмен письмами остается высоким. Коммерческий IT-сектор применяет почту для рекламных рассылок, уведомлений и банального общения с клиентами, и, по моему опыту, не собирается прекращать это делать из-за простоты и доступности этого средства.
По данным Statista.com, в 2022 отправляется более 320 млрд писем каждый день, и это число стабильно растет.
Почтовый механизм разрешает отправлять письма от кого угодно, кому угодно и когда угодно, что разрешает злоумышленникам рассылать рекламный и вирусный спам. Это головная боль, от которой никакими средствами полностью избавиться невозможно. Разработчикам и администраторам приходится применять разные, порой костыльные методы борьбы со спамом: контекстная фильтрация, черные списки, серые списки и прочее – всё это методы, не дающие стопроцентной гарантии защиты от спама, а других попросту не существует. Иногда вводят такие меры настолько агрессивно, что и у порядочных отправителей начинаются проблемы.
Настройка Почты Gmail | Как Настроить Почту для Работы
Приведу два примера.
Пример 1.
Яндекс, предоставляющий возможность использовать свои почтовые сервисы, с 2021 года стал блокировать отправку писем с подменой отправителя (если вдруг не знали, то да, можно отправить письмо с одного ящика, а отображаться у получателей будет другой). Номинально это было правильное и полезное для защиты пользователей решение, но некоторые CMS используют данную возможность.
Например, 1С-Битрикс. Он умеет работать с кастомным почтовым сервером, но маленьким и средним интернет-магазинам при запуске было лень решать вопросы его настройки, и поэтому часть из них выбирали сторонний почтовик от Яндекса. И как только Яндекс перекрыл рубильник подмены заголовков, почта банально перестала отправляться. Клиентам Яндекс.Почты с сайтами на Битриксе пришлось исправлять это в экстренном режиме, с чем я сам неоднократно сталкивался.
Пример 2.
При размещении почтового клиента на выделенном виртуальном сервере, администраторам, как правило, нужно учесть, что большинство провайдеров перекрывают 25 порт в целях безопасности. Это порт, который по умолчанию использует большинство почтовых клиентов для отправки писем. Таким страдают Яндекс в облачных серверах, Amazon и остальные провайдеры, но они позволяют запросить открытие порта. Selectel же, например, заявил, что будет блокировать порт перманентно (пока, правда, этого не произошло). Это добавит еще больше геморроя администраторам при решении этой проблемы.
Правильный выбор и настройка ПО может помочь в решении и профилактике проблем из примеров.
Как работает отправка писем?
Тут краткий ликбез, важный для понимания и осознанности конфигурирования почтового сервера. Мы не будем касаться тонких особенностей работы протокола SMTP, только общей схемы обмена сообщениями между участниками процесса. Мне самому для понимания, какие опции сервера нужно настраивать, а какие не нужно, очень помогало держать в голове такую схему.
Рассмотрим следующий простейший пример:
Этот пример можно представить в виде следующей схемы:
Все элементы этой цепочки: Outlook Боба, сервер Yandex, сервер Mail.ru и Outlook Фила – участники обмена почтовым сообщением, которых называют агентами.
Все агенты классифицируются на:
- Mail User Agent (MUA) — пользовательский почтовый агент, получает письма и отправляет их. Как правило такие агенты именуются почтовыми клиентами.
- Mail Delivery Agent (MDA) — агент доставки письма, дает доступ к письму для MUA получателя.
- Mail Transfer Agent (MTA) — агент передачи письма, принимает письма и отправляет их на другие MTA или MDA.
Это функциональная классификация элементов в схеме работы обмена почтовыми сообщениями, она не декларирует соответствие элементов и программного обеспечения. То есть принадлежность элемента к какому-либо классу определяется тем и только тем, что он умеет делать и делает в конкретный момент, но не выбранным ПО.
В примере выше можно определить класс каждого агента по исполняемым ими функциям согласно классификации следующим образом:
Представим, что теперь Фил из примера решил отправить ответное письмо Бобу: в таком случае функциональные классы серверов Yandex и Mail.ru поменяются местами, т.к. теперь Mail.ru будет пересылать письмо Боба, а сервер Yandex будет принимать письмо и складывать его во “Входящие”. В этом и заключается изменчивость принадлежности агентов к функциональным классам.
Важно понимать, что один и тот же физический или облачный сервер (в некоторых случаях одно и то же программное обеспечение) может выполнять разные по классификации функции.
Как, например, сервера Yandex и Mail.ru умеют и пересылать письма, и хранить входящие, и обрабатывать запросы клиентов на получение новых писем, но всё это в разные моменты времени. Когда нужно переслать, сервер выполняет функции MTA, когда сохранить входящее или отдать клиенту новое — MDA.
Yandex и Mail.ru умеют так только потому, что разработчики озаботились настройкой серверной инфраструктуры и софта и потратили на это много денег и времени. Чем больше требуется функций почты, тем затратнее будет настройка. Большинству владельцев почты не нужны ни личные “Yandex” и “Mail.ru”, ни лишние затраты, но нужны отдельные возможности почты.
Поэтому важно заранее определить задачи, которые почтовый сервер должен решать, и после этого уже работать над настройкой инфраструктуры, выбором ПО и конфигурированием.
Конфигурирование сервера Postfix
Рассмотрим выполнение базовой технической задачи для живого проекта — рассылка рекламных сообщений (не спама) с сайта интернет-магазина. Для ее решения нет необходимости в приеме писем, только в отправке и пересылке — соответственно, нам нужны функции MUA (только для отправки) и MTA.
Наименее затратным решением будет использование связки из:
- стороннего почтового сервера (MTA);
- локального почтового клиента (MUA).
Такое решение может не устроить заказчика. Например, если сторонний почтовый сервер не может подменять отправителя, а этого требует сам сайт. В таком случае потребуется найти другие пути для реализации MTA-функций.
Тут на помощь приходит открытый почтовый сервер Postfix, который сразу после установки уже умеет пересылать электронные письма. Это классно — не нужно тратить время на создание велосипеда. Но придется столкнуться с ворохом ожидаемых проблем при использовании этого почтовика без предварительной настройки. Давайте рассмотрим, какие возникнут трудности и как о них заранее позаботиться.
- Установка.
Установить Postfix на сервер можно любым доступным способом. Для удобства здесь и далее будем предполагать, что на сервере стоит CentOS 7, и все команды выполняются из-под пользователя root.
- Базовая конфигурация.
При установке Postfix создаются конфиг-файлы по умолчанию, они хранятся в директории /etc/postfix. Для корректного решения нашей задачи потребуется скорректировать файл: /etc/postfix/main.cf.
Основные параметры файла конфигурации main.cf:
- myhostname – хост почтового сервера,
- mydomain – домен почтового сервера, как правило задается как myhostname без первой компоненты,
- mydestination – адрес для получения писем,
- myorigin – адрес, который будет указан как отправитель при передаче письма,
- inet_interfaces – сетевые интерфейсы, по которым может проходить почта,
- inet_protocols – протокол поиска MTA получателя.
Параметры myhostname, mydomain используются в других параметрах как переменные, их задавать не обязательно, но желательно — если изменится хост или домен, не придется переназначать другие параметры.
Параметр mydestination для решения нашей задачи по очевидным причинам не требуется, но он может быть полезен в случае, если ответы получателей на письма требуется складывать в едином хранилище. Например, в том же Яндексе.
Параметр inet_interfaces необходимо настроить для ограничения возможных клиентов сервера. Если почтовый сервер и клиент располагаются на одной машине, то достаточно указать localhost, иначе – тот домен, с которого будут приходить инструкции от клиента.
Параметр inet_protocols, как правило, задают в ipv4, игнорируя ipv6 ввиду его ненужности.
- Настройка DNS-записей.
Конфигурации по умолчанию сразу хватает для отправки писем, но они с большой вероятностью будут попадать в спам других почтовиков. Для избежания этого потребуется провести конфигурацию доменной панели под ваш почтовый сервер.
DNS-запись – это строка, в которой содержится информация о сервере, полезная другим участникам обмена сообщениями в сети Интернет. Как правило записи состоят из имени, типа, собственно значения и иногда приоритета и времени жизни. С помощью DNS-записей, например, производится привязка ip-адреса сервера к его доменному имени. Управление записями происходит в доменных панелях хостинга.
Большинство почтовиков при получении писем проверяют их Anti-Spam софтом, который в первую очередь оценивает наличие и корректность DNS-записей. При отсутствии или некорректной настройке записей почтовый сервер получателя может со временем добавить ваш ящик в черный список. Такого при рассылке рекламных сообщений лучше избежать. Для решения поставленной задачи требуется четыре таких записи, каждая из которых настраивается в доменной панели.
MX-запись.
MX-запись – это одна из основных записей типа TXT, необходимых для работы почтовых серверов. Она определяет, по какому адресу нужно отправлять письма, чтобы ваш почтовый сервер как получатель смог их принять.
Для решения нашей задачи эта запись не нужна – не собираемся принимать письма. Поэтому без нее почта будет работать, но большинство почтовых AntiSpam-сервисов требует её наличия. Отсутствие MX-записи не воспринимается ими как критичный признак спама. Письма будут приходить получателям, но нет гарантии, что через время из-за отсутствия MX-записи наш почтовый сервер не поместят в черный список. Поэтому желательно эту запись добавить.
Источник: habr.com
письмо попадает в почтовый ящик пользователя.
4) письмо немедленно попадает в почтовый ящик адресата.
5) письмо попадает в адресную книгу пользователя.
Вопрос № 5. Где удобнее хранить часто используемые адреса электронной почты (и другую информацию о своих корреспондентах)?
1) в своей записной книжке
в адресной книге почтовой программы
3) в телефонной книжке
4) в ежедневнике
Вопрос № 6. Как происходит заражение «почтовым» вирусом?
1) при открытии зараженного файла, присланного с письмом по e- mail;
2) при подключении к почтовому серверу;
3) при подключении к web-серверу, зараженному «почтовым» вирусом;
4) при получении зараженного файла с письмом, присланным по e-mail.
Вопрос № 7. Электронная почта (e-mail) позволяет передавать …
1) только сообщения
сообщения и приложенные файлы
4) видео изображение
Вопрос № 8. Обращение к какому серверу позволяет почтовым серверам определять имена и IP-адреса друг друга?
1) к контроллеру домена
к DNS-серверу
3) к WINS-серверу
Вопрос № 9. С помощью какого протокола можно обеспечить защиту сообщений от прочтения или подделки при их передаче по каналам Интернета?
SSL
Вопрос № 10. Какой протокол используется почтовыми серверами для обмена сообщениями?
SMTP
Вопрос № 11. Клиент-программа электронной почты позволяет:
1) Подготавливать и редактировать письма
2) Просматривать письма
3 Производить настройки подключения к почтовому серверу
4) Отправлять электронную почту
Вопрос № 12. Что нужно знать, чтобы настроить свою почтовую программу (выберите все нужные ответы)?
1) Свой электронный адрес
2) Имя или IP-адрес своего почтового сервера
3) Протокол доступа к почтовому ящику
собака
коммерческая эт
Вопрос № 14. Какой (или какие) протоколы могут использоваться клиентскими почтовыми программами для подключения к почтовому серверу и считывания сообщений? Выберите все нужные ответы.
IMAP4
POP3
Вопрос № 15. В заголовке почтового сообщения указывается:
адрес получателя
дата отправки сообщения
тема сообщения
4) адрес отправителя
Вопрос №16. В каких полях сообщения могут быть указаны адреса получателей?
1) «Кому»
2) «Копия»
Вопрос № 17. При регистрации на сервере под каким-либо именем надо придерживаться следующих правил:
в имени не должно быть пробелов
имя должно состоять из латинских букв или цифр
3) имя должно состоять из двух частей
4) имя должно состоять из русских букв и цифр
Вопрос № 18. Программы, предназначенные для создания и отправки писем:
1) Outlook Express
2) Microsoft Excel
3) Microsoft Internet
The Bat
Вопрос № 19. Какие адреса принадлежат почтовому сервису mail.ru?
Вопрос № 20. Какой из протоколов передачи файлов в Интернете был разработан первым?
FTP
Вопрос № 21. Для маршрутизации почты в сетях X.25 в DNS предусмотрена специальная ресурсная запись c соответствующим названием X25 код…
Написать правильный ответ____
Вопрос № 22. В целом же, трафик электронной почты (протокол SMTP) занимает только … всего сетевого.
Написать правильный ответ____
Вопрос № 23. В мире более … миллионов человек пользуются услугами электронной почты.
Написать правильный ответ____
Вопрос № 24. На 2008 год самыми распространёнными почтовыми программами, используемыми под распространёнными операционными системами Microsoft Windows NT, являлись. программы.
Написать правильный ответ____
Вопрос № 25. Кодировка KO. -R используется в большинстве компьютеров, работающих под OS UNIX на территории бывшего Советского Союза.
Написать правильный ответ____
Вопрос № 26. Кодировка русского языка MS Windows СР…… предложена фирмой Microsoft для своих продуктов.
Написать правильный ответ____
Вопрос № 27. Стандарт ISO. является международным.
Написать правильный ответ____
Вопрос № 28. Появление электронной почты можно отнести к … году.
Написать правильный ответ____
Вопрос № 29. Кодировка зарегистрирована в Internet Architecture Board (IAB) в июле …. г.
Написать правильный ответ____
Вопрос № 30. Для всех стран существуют …. буквенные коды.
Написать правильный ответ____
Вопрос № 31. Пользователь открыл программу Outlook Express и собирается нажать на кнопку «Создать». Это действие приведет к:
1) Созданию новой учетной записи в программе
2) Созданию нового сообщения
3) Созданию новой папки
4) Созданию нового адреса
Вопрос № 32. Что за адрес вводит пользователь в данном окне?
1) Адрес получателя сообщения
2) Адрес сервера электронной почты
3) Свой собственный адрес электронной почты
4) Нет правильного варианта
Вопрос № 33. Выбор данной команды позволяет:
1) Открыть окно «Учетные записи»
2) Добавить новую учетную запись (профиль)
3) Удалить учетную запись (профиль)
4) Все варианты верные
Вопрос № 34. Нажатие на кнопку «Доставить почту» приведет к:
1) Получению всех новых сообщений
2) Отправке всех созданных сообщений
3) Получению и отправке всех новых сообщений
4) Нет правильного варианта
Вопрос № 35. Выбрав пункт меню «Сервис» — «Параметры», пользователь собирается:
1) Изменить параметры своей учетной записи
2) Изменить параметры программы
3) Изменить параметры почтового ящика
4) Изменить параметры адресата
Вопрос № 36. Какие поля обязательны для заполнения при создании сообщения?
1) Только поле «Кому»
2) Поля «Кому» и «Копия»
3) Поля «Кому» и «Тема»
4) Обязательно заполнение всех полей
Вопрос № 37. Чем вызвано данное предупреждающее сообщение:
1) Пользователь не указал тему сообщения
2) Пользователь не написал текст сообщения
3) Пользователь не указал адрес получателя
4) Нет правильного варианта
Вопрос № 38. С помощью данной команды пользователь собирается:
1) Извлечь текст сообщения из файла
2) Прикрепить к тексту письма файл
3) Сохранить текст письма в файл
4) Открыть и просмотреть через программу файл
Вопрос № 39. С помощью данной команды пользователь может:
1) Отправить письмо нескольким адресатам
2) Отправить письмо только одному адресату
3) Добавить в программу несколько новых адресов
4) Все варианты верные
Вопрос № 40. При выборе сообщения в верхнем окне программы, в нижнем окне отображается:
1) От кого и кому пришло письмо
2) Вложенные файлы
3) Текст сообщения
4) Все варианты верные
Список литературы
1) Березин С., Раков С. Internet у вас дома [Текст]: – 3-е изд. – СПб.: BHV- Санкт-Петербург, 2008.
2) Бешенков С.А., Гейн А.Г., Григорьев С.Г. Информатика и информационные технологии [Электронный ресурс] – Екатеринбург, 2008.
3) Вишневский, А. Сетевые средства Windows 2000 [Текст] / А. Вишневский. – СПб.: Питер, 2006.
4) Вычислительные системы, сети и телекоммуникации [Текст]: учебник для вузов / А. П. Пятибратов [и др.]. – 3-е изд. – М.: Финансы и статистика, 2007.
5) Габбасов Ю. Internet 2000 [Текст]. – СПб.: BHV – Санкт-Петербург, 2007.
6) Галкин, В. А. Телекоммуникации и сети [Текст]: учеб. пособие для студентов вузов по специальности «Автоматизированные системы обработки информации и управления» направления подготовки дипломированных специалистов «Информатика и вычислительная техника» / Под ред. В. А. Галкина, Ю. А. Григорьева. – М.: МГТУ им. Н.Э. Баумана, 2006.
7) Заборовский, В. С. Сети ЭВМ и телекоммуникации. Моделирование и анализ сетей связи с коммутацией пакетов. Network Simulator (Сетевой симулятор ns2) [Текст]: учеб. пособие / Под ред. В. С. Заборовского – СПб.: ГТУ, 2008.
8) Информатика [Текст]: учебник / Под ред. Н. В. Макаровой. – М.: Финансы и статистика, 2006.
9) Информатика. Энциклопедический словарь для начинающих [Текст] / Под редакцией Д.А.Поспелова. – М.: Педагогика-Пресс, 2008.
10) Кенин А.М., Печенкина Н.С. IBM PC для пользователей или как научится работать на компьютере [Текст] – Екатеринбург: АРД ЛТД, 2007.
11) Олифер В.Г., Олифер Н.А. Компьютерные сети [Текст]: 2-е издание, учебник для ВУЗов. – «Питер», 2006.
12) Персональные компьютеры в сетях TCP/IP [Текст]: учеб. пособие для старшеклассников / Под ред. Мицкевич О. Ю. [и др.] – Киев: издательская группа BHV, 2007.
13) Симонович С.В., Мураховский В.И. Интернет у вас дома [Текст] – М.: ООО «АСТ-Пресс Книга», 2007.
14) Таненбаум, Э. Компьютерные сети [Текст] / Э. Таненбаум. – СПб.: Питер, 2007.
15) Уткин В.Б., Балдин К.В. Информационные системы и технологии [Текст] – М.: Юнити, 2006.
16) Фигурнов В.Э. Интернет для пользователя [Текст] – М.: ИНФРА-М., 2007.
17) Шафрин Ю., Основы компьютерной технологии [Текст] – М.: АБФ, 2007.
18) Шиндер Д. Л. Основы компьютерных сетей [Текст] / Пер. с англ. Д. Л. Шиндер – М.: Вильямс, 2008.
19) Якубайтис Э. А. «Информатика-электроника-сети» [Текст] – М.: «Финансы и статистика», 2009.
Источник: poisk-ru.ru
Записки IT специалиста
Настраиваем свой почтовый сервер. Что нужно знать. Ликбез
Последнее время мы уделяли мало внимания почтовым системам, но вновь возросший интерес заставил нас вернуться к этой теме. Основные затруднения начинающих при работе с почтой состоят в том, что почта — это сложная система, состоящая из нескольких компонентов, взаимодействующих как между собой, так и с внешними системами. Кроме того, почта крайне чувствительная к правильной настройке DNS. Чтобы разобраться и не запутаться во всем этом мы предлагаем освежить знания по базовому устройству систем электронной почты при помощи этой статьи.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.
Общее устройство и принципы работы почтового сервера
Севрер электронной почты — это сложная система, состоящая из множества компонентов, которые взаимодействуют между собой. Поначалу кажется, что разобраться во всем этом многообразии довольно сложно. Но это не так, почтовый сервер содержит ряд ключевых компонентов, вокруг которых уже выстраиваются дополнительные и для понимания происходящих процессов достаточно знать основные принципы работы.
Давайте рассмотрим схему ниже, она предельно упрощена и содержит только самые важные элементы, которые лежат в основе любой почтовой системы.
Их ровно три:
- Message transfer agent (MTA) — агент передачи сообщений. Данный компонент, собственно, и является почтовым сервером в узком понимании этого термина, он работает по протоколу SMTP и его основная задача прием и передача почтовых сообщений, как для внешних получателей, так и для внутренних. Взаимодействует как с внешними серверами, так и с почтовыми клиентами. И это единственный компонент почтового сервера, который имеет связь с внешним миром. Основная задача MTA — это отправка почты внешним получателям и получение почты для внутренних.
- Message delivery agent (MDA) — агент доставки сообщений. Он обеспечивает доставку полученных от MTA сообщений к месту прочтения клиентским приложением. Проще говоря, именно с помощью MDA почтовый клиент может получить доступ к собственной почте. Работает по протоколам POP3 и IMAP, также отдельные решения могут использовать проприетарные протоколы, такие как MAPI Exchange. MDA не взаимодействует с внешними системами и не принимает участие в отправке почты, его задача — доставка уже полученных сообщений клиенту почтовой системы.
- Хранилище почтовых ящиков — третий компонент почтового сервера, отвечающий за хранение полученных и отправленных сообщений. Различные системы могут использовать разные форматы хранения, в Linux системах наиболее распространены mbox и Maildir, но на этом варианты хранилищ не исчерпываются.
С почтовым сервером взаимодействует клиент электронной почты — Mail User Agent (MUA) — он может быть как в виде отдельного приложения, так и в виде популярного ныне веб-интерфейса. В любом случае это только разновидности почтового клиента, принцип их работы одинаков.
Когда пользователь хочет получить свою почту, он обращается к агенту доставки сообщений (MDA), сегодня MDA несут важную дополнительную функцию — ведение базы пользователей и их аутентификацию. Проверив, что пользователь тот, за кого себя выдает MDA предоставляет ему доступ к собственному ящику в хранилище при помощи выбранного пользователем протокола. Во всех современных решениях используется протокол IMAP, который позволяет гибко управлять собственным почтовым ящиком и не требует обязательного скачивания сообщений клиентом.
Если же мы хотим отправить почту, то почтовый клиент связывается с MTA, либо с дополнительным компонентом — Message submission agent (MSA) — агентом отправки почты, он использует отдельный порт — 587 и его задача получение сообщений от почтового клиента и передача их MTA для отправки по назначению. Вне зависимости от наличия MSA клиент всегда может отправить почту непосредственно через MTA.