Przechowywanie skryptów Dovecot Sieve z bazą danych SQL

1

Nie wiem, jak skonfigurować Dovecot do korzystania z bazy danych SQL do przechowywania sit. Do tej pory znalazłem Pigeonhole z tym samouczkiem - https://wiki.dovecot.org/Pigeonhole/Sieve/Configuration/Dict

Z tego, co rozumiem, pomysłem jest użycie słownika ze skryptami Sieve przechowywanymi w bazie danych SQL. Ale jedno zdanie nie jest ode mnie jasne

Podobnie jak w przypadku pliku płaskiego, zapytanie bazy danych będzie musiało zwrócić   Skrypt Sito wszystko w jednej linii, w przeciwnym razie będą kolejne linie   ignorowane.

Czy w takim przypadku można pobrać tylko skrypty sitowe dla danego adresu e-mail? Próbuję znaleźć sposób na powiedzenie 100 różnych skryptów dla 100 różnych e-maili. Więc niektóre wyglądałyby tak:

require ["envelope", "fileinto", "mailbox"];
if envelope "To" "[email protected]"
{
    fileinto :create "Personal";
}

inny taki

 require ["envelope", "fileinto", "mailbox"]; 
 if envelope "To" "[email protected]" 
 {
     redirect :copy "[email protected]";
 }

Ale zawsze To byłoby inaczej.

sebap123
źródło

Odpowiedzi:

0

Nie mam twojego środowiska, więc postaram się odpowiedzieć na podstawie ogólnych znajomość bazy danych. Oto jak rozumiem dokumentację w twoim połączyć.

Uważam, że dokumentacja odnosi się do bazy danych SQL (który produkt?) połączony z ciągiem połączenia:

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

Oznacza to, że serwer bazy danych powinien działać na tym samym komputerze, baza danych do nazwania dovecoti mieć nazwę konta użytkownika dovecot z hasłem password. Zakładam, że można je zmienić, tak jak connect ciąg jest aktualizowalny parametr skryptu.

Baza danych powinna zawierać nazwę tabeli user_sieve_scripts, który może być parametrem pochodzącym z pliku konfiguracyjnego.

Tabela powinna mieć dwie kolumny (być może także parametry konfiguracyjne):

  • username : Klucz do przeszukania, który w twoim przypadku byłby kluczem to pole,
  • id : Kolumna, która zawiera skrypt do użycia.

Skrypt musi być całkowicie zawarty w id kolumna, ponieważ tylko jeden dostęp do bazy danych zostanie wykonany na stole, więc ta kolumna musi być duża wystarczy, aby zawierał twój najdłuższy skrypt.

The id kolumna prawdopodobnie zawiera kanały między liniami, lub brak, jeśli język skryptowy obsługuje wiersze wielu poleceń (Nie znam tego produktu wystarczająco dobrze).

Mam nadzieję, że może to wskazać właściwy kierunek.

harrymc
źródło