MBSync Maildir++ на IMAP с подпапкой во ВХОДЯЩИХ

Вопрос или проблема

Я пытаюсь использовать MBSync для синхронизации локальной папки Maildir++ (данные почты dovecot) с удалённым почтовым ящиком IMAP. Хотя в целом это работает, подкаталоги INBOX игнорируются.

Конфигурация выглядит так:

MaildirStore a-local
Subfolders Maildir++
Inbox /var/kunden/mail/a/[email protected]
IMAPAccount a
Host ***
User ***
Pass ***
SSLType IMAPS
CertificateFile ~/mail/cert

IMAPStore a-remote
Account a

Channel a
Master :a-local:
Slave :a-remote:
Patterns *
SyncState ~/mail/a-imap-transfer

Вывод выглядит так (почему INBOX игнорируется?!)

pattern '*' (effective '*'): Path, no INBOX Maildir warning: ignoring
INBOX in /var/kunden/mail/a/[email protected]/ Opening slave
store a-remote... Resolving ***... ok Connecting to
*** (***:993)... Connection is now encrypted Logging in... Authenticating with SASL mechanism PLAIN... pattern '*'
(effective '*'): Path, no INBOX Opening master box INBOX... Opening
slave box INBOX...

Структура папок в файловой системе выглядит так:

 .Drafts
'.Entw&APw-rfe'
 .Gesendet
 .INBOX.abizeitung
 .INBOX.Bachelorarbeit
 .INBOX.bestellungen
 .INBOX.dav

Последние 4 из них не синхронизированы.
Есть подсказки?

Из мануала: Заметьте, что INBOX не совпадает с подстановочными знаками, если он не находится под Path.. Поэтому вы должны добавить второй шаблон .INBOX.*.

Ответ или решение

Конфигурация MBSync, описанная в вопросе, предназначена для синхронизации локальной директории в формате Maildir++ с удаленным почтовым ящиком IMAP. Основная проблема, с которой столкнулся пользователь, заключается в том, что подпапки INBOX игнорируются во время синхронизации. Давайте проанализируем это более подробно и предложим решение.

Теория

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

Maildir++ — это расширение классического формата Maildir, которое позволяет использовать иерархические структуры каталогов. В этом формате подписчики могут размещаться под INBOX, как в вашем случае: .INBOX.abizeitung, .INBOX.Bachelorarbeit и так далее.

При настройке MBSync для такой задачи важно учитывать, что по умолчанию INBOX не будет соответствовать универсальным шаблонам (wildcards) в конфигурации. Это связано с особенностями работы с таким форматом директорий и может быть причиной того, что ваши подпапки не синхронизируются.

Пример

Ваша текущая конфигурация MBSync выглядит следующим образом:

MaildirStore a-local
Subfolders Maildir++
Inbox /var/kunden/mail/a/<a href="https://unix.stackexchange.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1c7cecee1c3c0d38fc2cecc"></a>
IMAPAccount a
Host ***
User ***
Pass ***
SSLType IMAPS
CertificateFile ~/mail/cert

IMAPStore a-remote
Account a

Channel a
Master :a-local:
Slave :a-remote:
Patterns *
SyncState ~/mail/a-imap-transfer

Согласно руководству пользователя MBSync, как вы и отметили в вопросе, для корректного захвата всех подпапок INBOX потребуется внести дополнительные изменения в секцию Channel.

Применение

Для того чтобы решить проблему игнорирования подпапок INBOX, нужно внести две основные коррективы в конфигурацию вашего канала:

  1. Добавить шаблон для подпапок INBOX:

    Используйте Patterns, которые явно указывают пути к подпапкам под INBOX. Например, добавить следующую строку:

    Patterns * .INBOX.*

    Эта строка указывает MBSync, что нужно учитывать все подпапки, следующие за .INBOX..

  2. Обработка спецификации пути:

    Возможны различные настройки для обработки путей в зависимости от сервера и структуры директорий. Вам может потребоваться уточнить путь к вашей Inbox и параметру Subfolders, чтобы они точно соответствовали вашему реальному пути.

Пример обновленной конфигурации может выглядеть так:

MaildirStore a-local
Subfolders Maildir++
Inbox /var/kunden/mail/a/<a href="https://unix.stackexchange.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1c7cecee1c3c0d38fc2cecc"></a>
IMAPAccount a
Host ***
User ***
Pass ***
SSLType IMAPS
CertificateFile ~/mail/cert

IMAPStore a-remote
Account a

Channel a
Master :a-local:
Slave :a-remote:
Patterns * .INBOX.*
SyncState ~/mail/a-imap-transfer

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

Заключение

Эти изменения позволят MBSync обнаруживать и синхронизировать подпапки INBOX, которые находятся внутри вашей структуры Maildir++. Это настраивает программу на правильное восприятие и обработку иерархических директорий, характерных для Maildir++.

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

Оцените материал
Добавить комментарий

Капча загружается...