Итак, на моем сервере я обычно сталкиваюсь с проблемой: разные почтовые клиенты называют некоторые специальные папки разными именами Sent
, например и .Trash
Sent Items
Deleted 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"
любой другой папки для создания символической ссылки!
Я думаю, плагин просто сам делает симлинк, так что вы просто делаете похожие вещи. С помощью этой техники вы можете объединить все нужные папки и сохранить работу клиентов без изменений. :-)