Голубятня: поставьте ответ в ту же папку, как отвечено - для обмена сообщениями

ОБНОВЛЕНИЕ (2 сентября 2014 13:01): Просто для уточнения я интересуюсь обработкой входящего ответа от кого-то еще, так прибытие на пути SMTP. Если это - ответ на электронное письмо, которое уже находится в некоторой почтовой папке, это должно быть сохранено в той папке также.

У меня есть Постфикс (SMTP) + Голубятня (IMAP) установка с моим/home/sybren/Maildir каталогом, хранящим мою почту. У меня есть фильтр Решета, чтобы гарантировать, что моя электронная почта работы заканчивается в папке IMAP "работы". Моя структура папок IMAP довольно обширна с несколькими подпапками, сказать work/research/subject1, work/research/subject2, work/education/subject3, и т.д.

Как пример, скажем, я посылаю электронное письмо своим коллегам с подчиненным "AAAAAA". После отправки его я перемещаю его в папку work/research/subject1. Теперь я хотел бы их ответы "Ре: AAAAAA", чтобы быть сохраненным в work/research/subject1 также, Голубятней.

Электронная почта передана от Постфикса до Голубятни с помощью этой установки в main.cf (все на одной строке)

mailbox_command = /usr/lib/dovecot/deliver -c 
                        /etc/dovecot/dovecot.conf -m "${EXTENSION}"

Мой main.sieve файл теперь содержит простые правила как:

require ["fileinto"];

if header :contains ["To", "Cc", "Bcc", "From"] "@work.nl" {
    fileinto "work";
}

ОБНОВИТЕ 2 (2 сентября 2014 15:16): Это - "поток", что я хотел бы видеть входящую электронную почту:

  1. Постфикс получает электронное письмо через SMTP.
  2. Постфикс выполняет спам/поиск вирусов.
  3. Постфикс передает почту Голубятне для доставки.
  4. Dovecot осматривает некоторую базу данных идентификатора сообщения к почтовым отображениям папки.
  5. Если В ответ на идентификатор сообщения найден, поставьте к соответствующей почтовой папке.
  6. В противном случае используйте сценарий Решета для определения соответствующего местоположения.

Конечно, последние два шага могли теоретически быть частью того же сценария Решета.

Я надеюсь, что кто-то может выручить меня!

Удачи,

Sybren

2
задан 2 September 2014 в 16:32
3 ответа

Для этой цели предусмотрена специальная функциональность IMAP-поток. http://tools.ietf.org/html/rfc5256 Современные IMAP-серверы, в том числе и dovecot, уже имеют его. Когда почтовый ящик находится в формате maildir, строится специальный индекс, который рассчитывается на ID сообщения. Когда вы отвечаете на сообщение, оригинальный ID хранится в заголовках In-Reply-To: и References:. Таким образом, IMAP-сервер может легко получить все сообщения в потоке и отображать их последовательно, несмотря на фактическое местоположение.

Поэтому вам просто необходимо убедиться, что ваш MUA настроен на использование потоковой передачи.

Некоторые MUA, такие как RoundCube, могут включать/отключать потоковую передачу для каждой папки мейлдира отдельно. Некоторые другие просто включают/выключают его глобально.

1
ответ дан 3 December 2019 в 11:41

Ваш IMAP-сервер (т.е. Dovecot) не отвечает за принятие решения о том, где хранить электронную почту. Ваш почтовый клиент (который может быть веб-почтой или настольным/мобильным программным обеспечением) копирует электронную почту в выбранную им папку. Sieve вряд ли будет участвовать.

Для почты из MTA, MTA обычно передает почту в фильтр, который затем помещает его в соответствующую папку imap (вероятно, через постфиксный скрипт доставки, хотя, а не через интерфейс imap). Когда почта приходит по IMAP, она, как правило, просто хранится, а не передается в Sieve.

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

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

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

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

1
ответ дан 3 December 2019 в 11:41

Не думаю, что вы сможете работать на стороне сервера.

Обычно хранение копии отправленных сообщений осуществляется программой почтового клиента. Некоторые клиенты имеют опцию "сохранять ответы с оригинальным сообщением" или аналогичную, вместо того, чтобы хранить все ответы в одной папке "Отправленные".

В большинстве случаев по умолчанию клиент будет использовать IMAP-соединение, чтобы поместить вашу копию ответа непосредственно в "Отправленные" или другую IMAP-папку, выбранную для этой цели. Это означает, что эти ответы не проходят через Dovecot Local Delivery Agent и ни одно из правил фильтрации, через которые обычно проходит электронная почта, когда она приходит по SMTP.

Иногда ваш почтовый клиент будет иметь возможность всегда посылать "Bcc:" для отправки копии сообщения на ваш собственный почтовый ящик, вместо того, чтобы хранить эту копию через IMAP. В этом случае ваш ответ будет приходить через Dovecot LDA и фильтры сообщений, которые вы настроили, хотя это может потребовать изменения ваших правил, потому что, например, вместо совпадения с отправителем, вам нужно будет отфильтровать получателя.

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

0
ответ дан 3 December 2019 в 11:41

Теги

Похожие вопросы