Email загрузчики

Добавление email загрузчика для загрузки прайс-листов

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

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

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

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

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

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

Настройка правил фильтрации писем и вложений

Правила 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: (пусто) - проверка темы не выполняется

5. Булевы значения: true/false (без кавычек, с маленькой буквы)

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