Назад | Перейти на главную страницу

Создавайте собственные почтовые ящики с dovecot

Я пытаюсь установить плагин dovecot + sieve. Я подаю в суд на формат Maildir. Я использую Thunderbird для чтения электронных писем, поэтому мне не нужна веб-почта на моем сервере. Базовая конфигурация работает нормально, но теперь я хочу добавить несколько правил в сито для перенаправления некоторых писем, например, такого:

require ["envelope", "fileinto"];
if envelope :is "from" "test@mydomain.com" {
    fileinto "Test";
}

Но sieve не может найти каталог "Test", поэтому помещает его во "Inbox". /var/log/syslog вывод :

dovecot: lda(test@mydomain.com): Error: sieve: msgid=<[...]>: failed to store into mailbox 'Test': Mailbox doesn't exist: Test
dovecot: lda(test@mydomain.com): sieve: msgid=<[...]>: stored mail into mailbox 'INBOX'

Поэтому я попытался добавить почтовый ящик вручную (но в идеале я бы хотел, чтобы он был автоматическим, когда сито запрашивает новый почтовый ящик), используя эту conf в dovecot:

 namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Test {
    auto = subscribe
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix = 
}

Таким образом, почтовый ящик создается при получении письма, а почта хранится в ~/mail/Test/new/ но я не могу найти папку / почтовый ящик «Test» в Thunderbird. Каждый второй почтовый ящик правильно отображается как папка в Thunderbird, но не новый.

Что я делаю не так ? Я не могу найти ни одного примера конфигурации dovecot, где люди используют настраиваемые почтовые ящики (только несколько стандартных). Возможно ли это с голубятней? Еще лучше: есть ли способ автоматизировать создание почтового ящика, когда сите нужен новый?

Использовать :create параметр mailbox способность сита (не забудьте require Это!):

require ["envelope", "fileinto", "mailbox"];
if envelope :is "from" "test@mydomain.com" {
    fileinto :create "Test";
}

Хорошо то, что сказал Йенс Эрат, было именно тем, что я искал. я забыл require это когда я пытался использовать :create но теперь это работает. При получении сервер создает новый почтовый ящик.

И для тех, кто задается вопросом, я также обнаружил, что в Thunderbird вам нужно щелкнуть правой кнопкой мыши свой почтовый ящик> Подписаться> Подписаться на новые папки, чтобы он мог проверять почту в папках, созданных на стороне сервера. Он не будет автоматически подписываться на них (если нет возможности, но я ее не видел)