1

Я не уверен, как настроить Dovecot для использования базы данных SQL для хранения сит. До сих пор я нашел Pigeonhole с этим руководством - https://wiki.dovecot.org/Pigeonhole/Sieve/Configuration/Dict

Из того, что я понимаю, идея заключается в том, чтобы использовать словарь со скриптами Sieve, хранящимися в базе данных SQL. Но одно предложение мне не понятно

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

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

require ["envelope", "fileinto", "mailbox"];
if envelope "To" "personal@example.com"
{
    fileinto :create "Personal";
}

еще один такой

 require ["envelope", "fileinto", "mailbox"]; 
 if envelope "To" "office@example.com" 
 {
     redirect :copy "office@example.net";
 }

Но всегда будет отличаться.

1 ответ1

0

У меня нет вашей среды, поэтому я постараюсь ответить на основе общих знаний базы данных. Вот как я понимаю документацию по вашей ссылке.

Я считаю, что документация относится к базе данных SQL (какой продукт?) подключено с помощью строки подключения:

host=localhost dbname=dovecot user=dovecot password=password

Это означает, что сервер базы данных должен работать на том же компьютере, база данных с именем dovecot и иметь учетную запись пользователя с именем dovecot с паролем password . Я предполагаю, что их можно изменить, поскольку строка connect является обновляемым параметром сценария.

База данных должна содержать таблицу с именем user_sieve_scripts , которая может быть параметром из файла конфигурации.

Таблица должна иметь два столбца (возможно, также параметры конфигурации):

  • username : ключ для поиска, который в вашем случае будет полем to ,
  • id : столбец, который содержит скрипт для использования.

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

Столбец id видимому, включает в себя переводы строк между строками или ни одного, если язык сценариев поддерживает многокомпонентные строки (я не знаю этот продукт достаточно хорошо).

Я надеюсь, что это может указать вам правильное направление.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .