gifts2017

Не 1с-кой единой. Настраиваем собственный почтовый сервер.

Опубликовал Алексей Плутенко (Noy) в раздел Администрирование - Системное

Рассказ–инструкция о настройке бесплатного SMTP/POP3/IMAP сервера под Windows. Попробую объяснить доступным языком.

 

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

Ну что ж - поадмниним: в этой статье я хочу рассказать о настройке собственного почтового сервера.

Подготовительный этап

Зачем? Причины у каждого свои - поэтому приведу те, что важны для меня:

  • Быстрая скорость работы почты внутри предприятия
  • Полный и удобный доступ к администрированию почты
  • IMAP (мега удобно, жаль не многие хостеры/провайдеры предоставляют этот сервис)
  • Получить дополнительный опыт

Итак, для начала определимся с минимальными требованиями:

  1. Компьютер с Windows, одним интерфейсом смотрящий в инет
  2. Постоянный IP-адрес и вменяемый провайдер
  3. Зарегистрированный домен + 2 DNS сервера + возможность управлять записями DNS

Если по первым двум пунктам думаю все ясно, то по третьему пункту я вкратце опишу необходимый порядок действий. Для начала следует зарегистрировать домен - это можно сделать бесплатно, а можно и отдать регистратору. Я воспользовался вторым вариантом - нашел компанию (http://cyfra.ua), которая предлагает услуги по регистрации и поддержке доменов. Они весьма шустренько зарегистрировали мне домен в зоне kiev.ua, предоставили свои DNS, панельку для управления и даже почтовый хостинг (отказываться не спешим - он нам еще понадобится).

В качестве примера, я буду использовать домен firma.kiev.ua

Установка и настройка ПО

Дальше устанавливаем сам софт. Я выбрал hmailserver  - соответственно про него писать и буду. Понравился он мне по двум причинам: поддержка IMAP и бесплатность.

В процессе установки будет предложено выбрать сервис для хранения базы данных: либо встроенный SQL-lite, или же свой SQL-сервер. Рекомендую выбрать первый пункт, поскольку сами письма все равно хранятся в файлах и требования к серверу БД не такие как у 1С Wink. После установки нужно проверить настройки файерволла - должен быть открыт порт 25 и 110/143 - если вы хотите получать почту, находясь не только в офисе.

Основные моменты в настройке:

Заходим в Settings - Protocol и галочками отмечаем необходимые нам службы (все три: SMTP,POP3,IMAP). В настройка SMTP заполняем

Max message size (максимальный размер сообщения - у меня 20Мб),

Number of retries - 24, minutes between every retry - 30 (сколько раз и с какой частотой пытаться доставить почту),

Local host name - mail.firma.kiev.ua (сам компьютер может называться как-угодно)

SMTP Relayer - оставляем пустым

Bind to local IP address - оставляем пустым

Затем Advanced - IP ranges - там добавляем записи:

LocalNet - 192.168.0.0 - 192.168.0.255 (естественно ставим свои), и галочками снимаем доступ Allow deliveries from External to External e-mail addresses и Require SMTP authentication External to local e-mail addresses

Internet - 0.0.0.0 - 255.255.255.255 с такими же настройками

В Advanced - TCP/IP ports проверяем что бы в качестве IP адресов стояли 0.0.0.0 (порты стандартно 23/110/143)

Ну и конечно же добавляем домен - firma.kiev.ua (настройки можно оставить по умолчанию) и в нем хотя бы пару аккаунтов (если у вас есть Active Directory - можно импортировать из него), настройки там интуитивно понятны. Теперь можно и потестировать работу почты внутри сети - должно все работать.

Настройка DNS...

Но к сожалению это только верхушка айсберга... во всем мире ведь никто не знает, что мы такие молодцы и у нас свой сервер - нам надо «засветиться». Для этого в панели управления доменом добавляем (изменяем если уже есть) такие записи:

A mail.firma.kiev.ua 222.222.222.222 (тут наш постоянный внешний IP - теперь наш комп имеет нормальное имя во всемирной паутине)

MX firma.kiev.ua mail.firma.kiev.ua 10 (назначаем «старшего» по почте)

Изменения вступят только через некоторое время! Проверить легко - обычным пингом на mail.firma.kiev.ua - рано или поздно мы начнем пинговать свой собственный сервер.

...и прочие танцы с бубном

В теории это все: сервер запустили, всем сообщили - ждем почту / отправляем свою. На практике большую часть почты, которую мы хотим кому-то послать, другие серверы будут заворачивать. Ответ прост - СПАМ. На сегодняшний день есть много способов как по рассылке спама, так и по борьбе с ним. Один из первых способов борьбы со спамом - это обратный DNS-запрос. Объясню на пальцах:

Например отправляем мы письмо с нашего сервера на адрес лалала@mail.ru. Наш сервер соединяется с сервером мейл.ру и говорит: Привет, я mail.firma.kiev.ua, хочу послать тебе письмо. Майл.ру делает DNS-запрос - какой адрес у сервера mail.firma.kiev.ua - получает ответ 222.222.222.222 (это прямой запрос), но этого ему мало - он посылает запрос вашему провайдеру - «кто такой 222.222.222.222» и получает ответ что-то типа «222_static.ads.mysip.net» - налицо несоответствие и наш сервер посылают куда подальше (вдруг спамер). Что бы этого не случилось - нам нужно сообщить нашему провайдеру, что мы не просто «222_static.ads.mysip.net», а «mail.firma.kiev.ua» и он внесет соответствующую запись в свои настройки (PTR запись).

Все? Фиг там! Готовьтесь как минимум к еще одной проблеме. Так как вы со своим сервером - новый член почтового сообщества, то на первых порах к вам будут относится с большим подозрением. Протокол SMTP (тот, на котором сервера общаются между собой) придуман много лет назад и все стандарты полностью описаны в соответствующей документации. Но соблюдают их ничем не лучше, чем  мы соблюдаем рекомендации 1С по написанию обработок Wink. Каждый администратор почтового сервера сам себе начальник и сам устанавливает условия работы своего сервера - от кого принимать, кому отказать и так далее.

И что делать? Нужно анализировать ответы других серверов (сообщения типа MAILER-DAEMON и тп) - в большинстве случаев проблема будет описана в сообщении - почему чужой сервер не захотел принимать от вас сообщения.

Возможные варианты (не дословно, а по смыслу):

  • Ваш сервер в спам-списке - в самом сообщении обычно указывают в каком именно списке ваш сервер засветился. Для решения проблемы нужно проверить свою сеть на наличие вирусов, затем зайти на указанный сайт и заполнить заявку на исключение вашего сервера из списка
  • Ваш сервер/домен отсутствует в списке доверенных и тп - скорее всего удаленный сервер очень жестко настроен - разрешается доступ только определенным серверам/доменам. Для решения нужно связаться с администратором этого сервера, что бы он внес ваш сервер в «белый» список.
  • Временная ошибка, «перезвоните попозже» - тут два варианта - чужой сервер действительно перегружен/занят/пошел покурить, или же это «проверка на вшивость» - так называемый серый список. Это еще один способ борьбы со спамерами - суть такова: по правилам каждый почтовый сервер должен предпринимать попытки доставить почту через определенные промежутки времени (боюсь быть не точным - каждые полчаса в течение трех суток). Естественно, что спамер вряд ли будет это делать, соответственно настоящий сервер таки добьется своего и письмо доставит. Такие проверки устраивают единоразового для каждого нового сервера или же с какой-то периодичностью. Решение: ничего не делать - просто ждать (при условии, что вы верно внесли настройки описанные выше - их достаточно для преодоления большинства проверок типа «серый список»). Дольше всего мне пришлось ждать «разрешения» от ukr.net - благо они в ответ дают ссылку http://www.ukr.net/mta/std3.html, где все подробно разжевано.
  • Ну и всевозможные ошибки, связанные с неправильной настройкой сервера, DNS или заголовков письма - тут нужно разбираться в каждом случае отдельно.

Есть путь и проще - достаточно пересылать всю исходящую почту на SMTP-сервер провайдера (настройка SMTP Relayer) и все эти проблемы лягут на провайдера, но мы ведь не ищем легких путей ;)

 

Про азы борьбы со спамом, преимущества протокола IMAP на практике, а также что делать с входящей почтой когда ваш сервер в оффлайне расскажу в следующей статье. Если, конечно, будет интерес.

 

P.S. Как маленький бонус - для доступа к корпоративной сети извне по RDP/VPN/etc теперь не надо набирать IP-адрес - ведь у нас есть собственное имяWink

 

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Александр Зубцов (iov) 21.06.10 22:41
хорошая статья но..... неформат... не тут... не поймут и не оценят... могут и заминусить...
2. Доржи Цыденов (support) 21.06.10 22:56
Кто сказал, что не формат. Для таких статей целый раздел выделен, только мало их.
3. Dmitry Dmitry (Dimasik2007) 21.06.10 23:18
Хорошая статья.
Я решил не мучаться и воспользовался Яндекс-почтой для доменов (pdd.yandex.ru) :)))
4. Алексей Плутенко (Noy) 21.06.10 23:34
(1) Не поймут - так и будет... хотя думаю админов-одинесников тут хватает. может кому и пригодится.
(3) Еще гугл дает такой-же сервис. Но тут как плюсы (низкая вероятность оффлайна, спам-фильтры, антивирусы, админу нифига делать не надо - плюс спорный) так и минусы (твоя почта у "дяди" - вопрос конфиденциальности, скорость внутренней пересылки, также не забываем о возможности использования скоростного почтового сервиса для обмена между приложениями/БД. У меня года три две 1С-ные базы обменивались данными через почту - причем отправка была в ОбработкаПроведения() - каюсь, давно переписал. Но как ни странно на скорость не сильно влияло)
5. Александр Зубцов (iov) 21.06.10 23:39
(2)(4) я не про админов - 1сников... А про злобных карликов пожирающих всех кто постит что-то банальное или не по теме 1с... А статья хорошая я её уже скопипастил в доки гугла...
автору никаких претензий статья отличная ... Но будет супер если это будет цикл статей...
6. Евгений Ильяшенков (ЗАК) 21.06.10 23:43
Интересно было почитать, спасибо ;)
7. Александр Рытов (Арчибальд) 22.06.10 07:27
8. amel amel (amel) 22.06.10 09:22
а как вы решаете вопрос с настройкой клиентов внутри сети ? какой клиент используете ?
9. Алексей Плутенко (Noy) 22.06.10 09:29
(8) Последнее время отдаю предпочтение Mozilla Thunderbird. Но есть и Outlook и Outlook Express. Настройку клиента под IMAP опишу в следующей статье.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа