Email загрузчики

В разделе Email загрузчики настраиваются правила получения писем и извлечения файлов прайс-листов из писем. Одно правило - один почтовый ящик, в одном правиле можно использовать множество условий, количество правил может быть любым.

Добавление правила получения писем и вложений

Добавление правила получения прайс-листов

Название - понятное название загрузчика, например, почтовый ящик, с которого собирается почта.

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

Настройки почтового сервера

Настройки почтового сервера для получения прайс-листов

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

Почтовый сервер - адрес почтового сервера, например, imap.google.com.

Порт - порт, согласно документации.

Использовать SSL - нужно ли использовать SSL.

Имя пользователя - имя пользователя для входа, обычно используется полный email адрес.

Пароль - пароль или код приложения для входа.

Общие настройки

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

Статистика и Callback

Статистика получения писем и callback

Callback токен - не используется в email загрузчиках, так как не имеет смысла.

Последний запуск - время последнего запуска.

Статус последнего запуска - ожидает, ошибка, успешно.

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

Добавление нового правила извлечения вложений из писем

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

Для каждого файла нужно задать правило, вы можете извлекать разные файлы из одного письма, задавайте настройки правила так, чтобы правило точно соответствовало нужному файлу. 

Имя файла - понятное для вас имя файла, под которым будет сохранено вложение, именно этот файл будет использоваться при добавлении прайс-листа.

От кого - почта отправителя.

Тема письма - тема письма.

Шаблон имени файла - шаблон названия вложения, которое необходимо извлечь из письма.

Извлечение из архивов - если файл присылается в архиве, нужно ли распаковать архив. Можно извлекать всегда или если архив содержит определенный файл.

Шаблон имени архива - позволяет извлекать файлы только из определенных архивов.

Извлекать все файлы - извлекаются все файлы из архива, не только соответствующие шаблону.

Извлекать из подпапок - если есть вложенные директории в архиве, извлекаются рекурсивно.

Помечать как прочитанное - если отмечено, то письмо будет отмечено прочитанным, если необходимо оставлять письма непрочитанными, уберите эту опцию.

Удалять после загрузки - если отмечено, письмо будет удалено. Совсем.

Активно - активно или нет правило.

Ниже практические примеры настроек:

Примеры фильтрации отправителя

1. Точное совпадение email (только exact:)

exact:supplier@company.ru

2. Точное совпадение с именем (только exact:)

exact:ООО Поставщик <supplier@company.ru>

3. Регулярное выражение для домена (любой email с доменом company.ru)

@company\.ru$

4. Регулярное выражение для нескольких доменов

@(company|supplier)\.(ru|com)$

5. Регулярное выражение для email, начинающегося с определенного префикса

^prices@

6. Регулярное выражение для email, содержащего слово (без exact:)

prices

7. Регулярное выражение для нескольких вариантов написания компании

ООО (Поставщик|Прайс-лист)

8. Регулярное выражение с игнорированием регистра

(?i)supplier@company\.ru

9. Регулярное выражение для email с поддоменами

.+@(prices|docs)\.company\.ru

10. Точное совпадение email в кавычках (без exact: - не сработает, нужно exact:)

exact:"Supplier Name" <supplier@company.ru>

Примеры фильтрации темы письма

1. Точное совпадение темы

exact:Прайс-лист на 2026 год

2. Регулярное выражение для даты в теме (форматы ДД.ММ.ГГГГ)

Прайс.*\d{2}\.\d{2}\.\d{4}

3. Регулярное выражение для месяца и года

Прайс.*(январь|февраль|март).*2026

4. Регулярное выражение для слов "прайс" или "цены" в любом регистре

(?i)(прайс|цены|price)

5. Регулярное выражение для темы с номером заказа

Заказ №\d+

6. Регулярное выражение для темы с датой в формате YYYY-MM-DD

\d{4}-\d{2}-\d{2}.*прайс

7. Регулярное выражение для исключения тестовых писем

^(?!.*тест).*прайс

8. Точное совпадение для многострочной темы (только exact:)

exact:Актуальные цены
Обновление от 01.02.2026

9. Регулярное выражение для сезонных прайсов

(весна|лето|осень|зима).*2026

10. Регулярное выражение для ID поставщика в теме

Поставщик [A-Z]{3}-\d{4}

Примеры шаблонов имени вложения

1. Точное совпадение имени файла

exact:price_list.xlsx

2. Точное совпадение с расширением (только exact:)

exact:Прайс-лист.xls

3. Регулярное выражение для определенного расширения

\.(xlsx|xls|csv)$

4. Регулярное выражение для архива

\.(zip|rar|7z)$

5. Регулярное выражение для файлов с датой в имени

price_\d{8}\.xlsx

6. Регулярное выражение для прайсов в названии

(?i)прайс.*\.xlsx

7. Регулярное выражение для файлов поставщика

supplier_\d+\.csv

8. Регулярное выражение для нескольких возможных имен

(price|pricelist|прайс).*\.(xlsx|xls)

9. Регулярное выражение для файлов с версией

catalog_v\d+\.xlsx

10. Регулярное выражение для файлов с кодом товара

products_\d{6}\.csv

Примеры шаблонов архивов

1. Точное совпадение имени архива

exact:prices.zip

2. Регулярное выражение для zip архивов

\.zip$

3. Регулярное выражение для архивов с датой

archive_\d{8}\.(zip|rar)

4. Регулярное выражение для многотомных архивов

part\d+\.rar

5. Регулярное выражение для архивов с префиксом

supplier_prices.*\.7z

6. Регулярное выражение для архивов любого типа

\.(zip|rar|7z)$

7. Регулярное выражение для архивов в подпапке

backup/.*\.zip

8. Регулярное выражение для архивов с годом

2026.*\.(zip|rar)

9. Регулярное выражение для запароленных архивов (по имени)

protected_.*\.rar

10. Регулярное выражение для архивов с пометкой full

full_backup_\d+\.7z

Комбинированные примеры

Пример 1: Простой - точное совпадение отправителя и любого вложения

filter_from: exact:supplier@company.ru
filter_subject: 
attachment_name_pattern: 
extract_archives: never
archive_pattern: 
extract_all_files: false
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 2: С регулярными выражениями и извлечением архивов

filter_from: @(company|supplier)\.ru$
filter_subject: (?i)прайс.*обновление
attachment_name_pattern: \.xlsx$
extract_archives: always
archive_pattern: 
extract_all_files: true
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 3: Точные совпадения со сложным именем вложения

filter_from: exact:ООО Поставщик <supplier@company.ru>
filter_subject: exact:Прайс-лист на 2026 год
attachment_name_pattern: exact:pricelist_2026_final.xlsx
extract_archives: never
archive_pattern: 
extract_all_files: false
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 4: Работа с архивами - извлечение только нужных файлов

filter_from: .+@prices\.company\.ru
filter_subject: (?i)архив.*прайсов
attachment_name_pattern: 
extract_archives: match_pattern
archive_pattern: \.zip$
extract_all_files: false
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 5: Сложная фильтрация с извлечением из подпапок архива

filter_from: ^prices@
filter_subject: \d{4}-\d{2}-\d{2}
attachment_name_pattern: (?i)price.*\.csv$
extract_archives: always
archive_pattern: 
extract_all_files: true
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 6: Только определенные архивы, извлекать все файлы

filter_from: backup@company\.ru
filter_subject: backup
attachment_name_pattern: 
extract_archives: match_pattern
archive_pattern: full_backup_\d+\.zip
extract_all_files: true
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 7: Несколько правил для разных типов файлов (должны быть отдельными объектами)

Правило 7.1: Для Excel файлов

filter_from: @supplier\.ru
filter_subject: 
attachment_name_pattern: \.(xlsx|xls)$
extract_archives: never
archive_pattern: 
extract_all_files: false
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Правило 7.2: Для CSV файлов в архивах

filter_from: @supplier\.ru
filter_subject: 
attachment_name_pattern: 
extract_archives: always
archive_pattern: \.zip$
extract_all_files: false
extract_subfolders: false
mark_as_read: true
delete_after_fetch: false

Пример 8: С удалением письма после загрузки (внимательно)

filter_from: exact:temp@temp-mail.org
filter_subject: exact:Тестовый прайс
attachment_name_pattern: test\.xlsx
extract_archives: never
archive_pattern: 
extract_all_files: false
extract_subfolders: true
mark_as_read: false
delete_after_fetch: true

Пример 9: Извлечение из архивов с фильтрацией по содержимому

filter_from: catalog@company\.ru
filter_subject: (?i)каталог
attachment_name_pattern: 
extract_archives: always
archive_pattern: catalog_.*\.zip
extract_all_files: true
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Пример 10: Комплексное правило с regex для всех полей

filter_from: ^(supplier|provider|vendor)@.+\.(ru|com)$
filter_subject: (?i)(price|pricelist|прайс).*2026
attachment_name_pattern: (?i)(price|prices).*\.(xlsx|csv|zip|rar)$
extract_archives: match_pattern
archive_pattern: \.(zip|rar)$
extract_all_files: true
extract_subfolders: true
mark_as_read: true
delete_after_fetch: false

Полный список полей с пояснениями

display_name: "Имя файла для сохранения" (обязательное)
filter_from: "Фильтр отправителя" (опционально, exact: или regex)
filter_subject: "Фильтр темы" (опционально, exact: или regex)
attachment_name_pattern: "Шаблон имени вложения" (опционально, exact: или regex)
extract_archives: "Извлечение из архивов" (never/always/match_pattern)
archive_pattern: "Шаблон имени архива" (опционально, exact: или regex)
extract_all_files: "Извлекать все файлы" (true/false)
extract_subfolders: "Извлекать из подпапок" (true/false)
mark_as_read: "Помечать как прочитанное" (true/false)
delete_after_fetch: "Удалять после загрузки" (true/false)
is_active: "Активно" (true/false)

Примечания по синтаксису

1. Для точного совпадения всегда используйте префикс "exact:"
  Правильно: exact:price_list.xlsx
  Неправильно: price_list.xlsx (будет интерпретировано как regex)

2. Регулярные выражения пишутся без кавычек
  Правильно: \.xlsx$|\.xls$
  Неправильно: "\.xlsx$|\.xls$"

3. Для русских букв в regex используйте флаг (?i) для игнорирования регистра
  (?i)прайс-лист

4. Пустые поля означают "пропустить проверку"
  filter_subject: (пусто) - проверка темы не выполняется

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