Dovecot: Почтовые клиенты и дублирующиеся папки

Dovecot: Почтовые клиенты и дублирующиеся папки

Итак, на моем сервере я обычно сталкиваюсь с проблемой: разные почтовые клиенты называют некоторые специальные папки разными именами Sent, например и .TrashSent ItemsDeleted Items

Мой вопрос в том, могу ли я каким-то образом «присвоить псевдонимы» всем этим именам и внутренне сопоставить их с одной и той же Sentпапкой на сервере?

Мне удалось изменить dovecot.confследующие разделы:

mailbox Sent {
    special_use = \Sent
    auto=subscribe
}

mailbox "Sent Messages" {
    special_use = \Sent
}

mailbox "Sent Items" {
    special_use = \Sent
}

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

Спасибо.

решение1

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

Пример конфигурации, гдеОтправилиМусорнастоящие почтовые ящики для псевдонимов «Отправленные» и «Удаленные»:

mail_plugins = $mail_plugins mailbox_alias
plugin {
  mailbox_alias_old = Trash
  mailbox_alias_new = Deleted Items
  mailbox_alias_old2 = Sent
  mailbox_alias_new2 = Sent Items
}

Не забудьте создать почтовые ящики:

namespace inbox {
  mailbox Sent {
    auto = create # or subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = create
    special_use = \Trash
  }
}

Другая возможность — создать два разных почтовых ящика, как вы упомянули, я скопировал частьconf.d/15-mailboxes.conf

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

Используя этот метод, у вас есть два разных Sent-box'а. Когда пользователь удаляет один из них, другой остается неизменным.

решение2

Нет необходимости использовать плагин. Перейдите в свой каталог vmail, например:

cd /var/vmail/example.com/exampleUser/ 

Затем, если вы хотите, например, чтобы все сообщения, хранящиеся в "Sent Messages"папке, вместо этого сохранялись в "Sent"папке , просто переместите файлы в "Sent Messages"папку "Sent"через свой клиент в качестве первого шага.

Затем в /var/vmail/example.com/exampleUser/mailпапке удалите "Sent Messages"скрытую папку:

rm -r /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

Перед отправкой любого другого электронного письма добавьте символическую ссылку на скрытую папку "Sent"( "Sent Messages"здесь длинная строка, если вы копируете и вставляете, делайте это внимательно):

ln -s /var/vmail/example.com/exampleUser/mail/.Sent /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

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

Если вам нужно сделать так, чтобы dovecot и клиент использовались "INBOX"в качестве "Sent"папки, вам следует создать символическую ссылку из почтовой папки с именем пользователя (снова длинная строка):

ln -s /var/vmail/example.com/exampleUser/mail/ /var/vmail/example.com/exampleUser/mail/.Sent\ Messages

Если вы его не меняли. Затем отредактируйте /etc/dovecot/conf.d/15-mailboxes.confстроки:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
}

или другой эквивалент, чтобы сделать их:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.
  mailbox INBOX {
    special_use = \Sent
  }
  mailbox INBOX {
    special_use = \Sent
  }
}

Как вы заметили, теперь два из них одинаковые, поэтому вы можете просто удалить один:

namespace inbox {
  # For \Sent mailboxes there are two widely used names. We'll mark both of
  # them as \Sent. User typically deletes one of them if duplicates are created.

  mailbox INBOX {
    special_use = \Sent
  }
}

Тогда все должно работать нормально. Я прошел через этот процесс, потому что хотел, чтобы отправленные письма были в папке «Входящие» как с ноутбука, так и с телефона. Хака с dovecot было достаточно для ноутбука, но телефон продолжал использовать папку "Sent Messages", поэтому мне пришлось использовать трюк с символической ссылкой. Будьте очень осторожны при выборе правильной "Sent"или "Sent Messages"любой другой папки для создания символической ссылки!

Я думаю, плагин просто сам делает симлинк, так что вы просто делаете похожие вещи. С помощью этой техники вы можете объединить все нужные папки и сохранить работу клиентов без изменений. :-)

Связанный контент