IMAP сборщик доменной почты для Windows/Linux
-
Сборка и пересылка доменной почты: подключение к общему ящику на IMAP сервере и пересылка всех писем по получателям на локальном Exchange сервере. - Сбор почты с IMAP сервера с поддержкой SSL
-
Досылка (дублирование) писем по получателю (с учетом домена или без него) -
Фильтрация получателей -
Детектирование и обработка скрытых копий -
Failsafe адрес для проблемных писем -
Настраиваемая глубина архива доставленных и недоставленных писем в общем ящике
Сценарий использования
Основной сценарий использования сервиса - сборка доменной (всей) почты через промежуточный общий аккаунт неразобранной почты. Такой сценарий удобно использовать при переезде с доменной почты провайдеров, которые стали платными. Создается общий адрес, куда собирается вся неразобранная почта, а сборщиком почты осуществляется забор с этой учетной записи и пересылка внутри Exchange сервера.
Внешний провайдер в данном случае продолжает фильтровать почту на СПАМ и вирусы.
Для пользователей доменной почты Яндекса переезжающих на свой почтовый сервер
Нюансы:
- Вы не сможете забрать почту с нескольких ящиков существующих пользователей на стороне Яндекса. Сервис не предназначен для этого. Используйте для переноса с Яндекса в ваш почтовый сервер другие инструменты. Этот шаг необходим только при переезде.
- Если очень нужно перенести почту этим сервисом, то можно прописывать
loginиpasswordпользователей и перезапускать сервис, почта будет переноситься. И так с каждым пользователем. При этомskipcollectoraddressдолжен быть равенfalse - Чтобы ваш аккаунт стал бесплатным необходимо оставить только учетную запись владельца (администратора) и одну запись для всей неразобранной почты. Все остальное необходимо удалить.
Порядок действий:
- Создание всех учетных записей пользователей на личном почтовом сервере, включая синонимы (алиасы).
- Перенос почты с Яндекса на созданные аккаунты личного сервера (если вам это необходимо).
- Создание на Яндексе служебного адреса для неразобранной почты, например
unknownmails@yourdomain.ru. Обратите внимание на "пароли приложений". - В настройках предприятия на Яндексе сделать пересылку всей неразобранной почты на созданный служебный адрес
unknownmails@yourdomain.ru. - Удаление учетных записей на Яндексе, кроме администратора и
unknownmails@yourdomain.ru. На этом этапе ваш аккаунт станет бесплатным и вся почта будет попадать не в ящики пользователей на стороне Яндекса, а вunknownmails@yourdomain.ruоткуда его заберет сборщик. - Создание учетной записи для сборщика на личном почтовом сервере или настройка анонимного доступа к SMTP.
- Настройка сборщика на сбор почты с
unknownmails@yourdomain.ruи пересылкой на личный почтовый сервер (описание параметров ниже).
Windows
Установка сервиса осуществляется программой установки из раздела загрузки.
Для регистрации сервиса в качестве службы необходимо запустить ее с ключом taa.mailcollector.exe
/install от имени администратора. Ключ /uninstall удаляет службу.
При использовании минимального пакета необходимо убедиться в наличии предустановленного пакета .NET 7 Runtime.
Debian
Работа сервиса протестирована в Debian 11+. Для установки (включая зависимости) выполните команду:
wget -O - https://bash-it.ru/debian/taa.mailcollector/install.sh | bash
Параметры
Параметры работы службы расположены в файле config.xml рядом с исполняемым файлом службы.
<?xml version="1.0" encoding="utf-8"?>
<taa>
<debug>true</debug>
<kaloginterval>100</kaloginterval>
<accounts>
<default>
<host>imap.mailserver.ru</host>
<port>993</port>
<ssl>true</ssl>
<ignorecert>true</ignorecert>
</default>
<items>
<account>
<type>imap</type>
<login>unknown@domain.com</login>
<password>imap_password</password>
<exchangehost>exchange.domain.local</exchangehost>
<exchangeport>25</exchangeport>
<exchangessl>false</exchangessl>
<exchangelogin>login</exchangelogin>
<exchangepassword>password</exchangepassword>
<exchangeignorecert>true</exchangeignorecert>
<domains>
<domain>domain.com</domain>
<domain>second-domain.com</domain>
</domains>
<skipcollectoraddress>true</skipcollectoraddress>
<skipaddress/>
<failsafe>failsafe@domain.com</failsafe>
<storedelivered>7d</storedelivered>
<storefailed>7d</storefailed>
<filterduplicates>true</filterduplicates>
<hidden>
<parse>true</parse>
<headers>
<header>Received</header>
</headers>
</hidden>
<autocopy>
<items>
<item from="user1@" to="user2@" onlywithattachments="false" replace="false" />
</items>
</autocopy>
</account>
</items>
</accounts>
</taa>
debug-trueдля вывода в консоль дополнительной информации. Не рекомендуется в рабочей среде из-за роста размеров журналов.kaloginterval- количество итераций вывода механизма KeepAlive в логи. Между итерациями 3 секунды.-
accounts-
default- параметры по умолчанию для всех аккаунтов. Если параметр не задан в этом разделе он должен быть задан в настройкахaccount -
items- обслуживаемые аккаунты (независимо)-
accounttype- тип коннектора сборщика. Пока толькоimap.host- хост почтового сервераimap.yandex.ru.port- порт почтового сервера993.ssl- использовать SSLtrue.ignorecert- игнорировать ошибки сертификатов внешнего почтового сервераtrue.login- логин.password- пароль.exchangehost- хост Exchange для пересылки.exchangeport- порт Exchange.exchangessl- использовать SSL для Exchange.exchangelogin- логин Exchange (если пусто - без авторизации).exchangepassword- пароль Exchange.exchangeignorecert- игнорировать ошибки сертификатов Exchange.domains- список обслуживаемых доменовskipcollectoraddress- исключать из пересылки адрес ящика с неразобранной почтой (login). Т.е. если письмо придет наunknownmails@yourdomain.ruоно пересылаться не будет.skipaddress- список адресов-исключений к доставке.failsafe- адрес доставки нераспознанной почты (если не удалось определить ни одного получателя или SMTP сервер отверг получателя). Если указать пустым (<failsafe />), то, при возникновении вышеописанных ситуаций, сообщения будут перемещаться в папкуForwardFailedпочтового сервера. Данный сценарий является проще обслуживаемым, т.к. сервис автоматически будет удалять сообщения через периодstorefailed.storedelivered- срок хранения доставленной почты0- сразу удалять,30/30m- 30 минут,3h- 3 часа,7d- 7 дней.storefailed- срок хранения недоставленной почты. Каждые 30 минут будет предприниматься попытка доставки этой почты повторно.filterduplicates- фильтрация дубликатов сообщений в разрезе получателя (любой домен). При хешировании сообщения берутся тема, тело сообщения и md5 хеши всех вложений. Если среди последних 100 сообщений пользователя есть сообщения с указанным хешем - сообщение будет считаться доставленным успешно.-
hidden- параметры поиска скрытых копийparse- обрабатывать заголовки письма в поисках адресов доставки.headers- список заголовков в которых искать адреса. Если список пустой - поиск будет по всем заголовкам (не рекомендуется).
-
autocopy- автодосылка сообщений-
items- правила досылки-
item- если в списках получателей (локальных) имеется получательfrom, то в список получателей будет добавлен получательto. Если атрибут заканчивается на@, то дляfromэто означает любой домен, а дляtoчто будет перенесен домен изfrom. Например письмо отправленноеuser1@somedomain.comбудет пересланоuser2@somedomain.com.@from- получатель письма (один из получателей)@to- адрес пересылки@onlywithattachments- только для писем с вложениями@replace- заменять исходного получателяfrom
-
-
-
-
Известные проблемы
Скрытые копии сообщений являются проблемой, т.к. при попадании в ящик назначения в mime
части сообщения не сохраняется никакой информации для кого было это сообщение.
В некоторых случаях помогает функция обработки заголовков hidden, но это
недокументированная возможность подходящая далеко не всем почтовым серверам.
Сервера Яндекса, пока, позволяют найти в заголовке Received эту информацию.
Настраивайте failsafe адрес чтобы не терять почту, которую отправитель отправил скрытой
копией. Данная проблема у любого почтового сборщика с общим ящиком, а не только этой реализации.
Что нового?
- 1.8.0
- Добавлен параметр
skipcollectoraddress - Значительно расширено логирование с параметром
debug - Улучшена стабильность взаимодействия с SMTP
- 1.7.0
- Улучшена стабильность
- Обновлены механизмы доступа к серверам
- Улучшена конфигурация развертывания в среде Linux
- 1.6.38
- Добавлена авторизация на Exchange
- Добавлен флаг использования SSL для подключения к Exchange
- Добавлен флаг игнорирования проблем сертификатов SSL/TLS со стороны Exchange
- Добавлен флаг игнорирования проблем сертификатов SSL/TLS со стороны внешнего почтового сервера
- 1.6.35
- Улучшен (расширен) механизм распознавания наличия скрытых копий.
- 1.6.34
- Улучшена стабильность сервиса
- Исправление обработки периодов хранения доставленной и недоставленной почты
- 1.6.31
- Улучшена стабильность сервиса
- 1.6.30
- Улучшена стабильность сервиса
- Добавлен флаг фильтрации дубликатов сообщений
- 1.6.25
- Улучшена стабильность сервиса
- Улучшен механизм обработки не удачной доставки сообщений
- 1.6.24
- Улучшен механизм логирования событий
- 1.6.22
- Улучшен механизм определения получателей.
- 1.6.21
- Доработана функция автодосылки сообщений
autocopyатрибутами@onlywithattachmentsи@replace. - 1.6.20
- Добавлена функция автодосылки сообщений
autocopy. - Улучшение стабильности работы сервиса.
- 1.6.19
- Улучшение стабильности работы сервиса.
- 1.6.3
- Добавлена возможность обслуживания нескольких аккаунтов.
- Добавлена возможность хранения успешно доставленной почты на сервере IMAP.
- Добавлена возможность хранения не доставленной почты на сервере IMAP, с повторной пересылкой каждые 30 минут до момента завершения срока хранения недоставленной почты.
- Добавлена возможность исключения адресов к доставке.
- Добавлена возможность извлечения адресов доставки (помогает найти скрытые копии).
- Введен список обслуживаемых доменов.
- Введен failsafe адрес для почты с неопределенным или отклоненным Exchange сервером адресом доставки.
- IMAP: подписка на событие доставки нового сообщения вместо переодического обхода. Позволяет оперативно получать сообщения.
- 1.0.14
- Исправления в механизме развертывания службы. Linux версия сборщика.
- 1.0.13
- Релиз.
Загрузки
Лицензионное соглашение для бесплатных версий программного обеспечения.