Dovecote sieve, custom rules / rules dir automatisch anlegen

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Hallo,

die Kundenspezifische Filter Regeln können über z.B. Roundcube eingestellt werden und finden sich dann unter:

sieve = file:~/sieve;active=~/.dovecot.sieve

Soweit funktioniert das auch. Aber folgendes Problem:
Wenn neue Konten / Postfächer angelegt werden, fehlen die Dateien / Ordner.
Entsprechend werden Emails auch nicht zugestellt.
Wie kann man es gewährleisten, dass dovecot im idealfall die Dateien, ggf. auch ohne Regeln, anlegt?
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11186
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by Joe User »

Sieh Dir mal "sieve_default", "sieve_global" und insbesondere "sieve_before" an:
https://wiki2.dovecot.org/Pigeonhole/Si ... figuration
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Hi,

sieve_before habe ich schon eingerichtet.
Hier ziehen Regeln, die SPAM etc. filtern. Das gilt für alle.
Allerdings sollen die Kunden auch eigene Regeln erstellen können.

Hier kommt es nun zu Problemen, wenn Mailboxen neu eingerichtet werden, dann wird das erforderliche Verzeichnis sieve nicht automatisch erstellt. Ebenfalls, fehlt dann eine "Standart "Regel, damit die Zustellung funktioniert.
Erst wenn die angelegt wird, klappt dann auch zu Zustellung.
So meckert er rum, dass es das Verzeichnis nicht gibt und stellt die Email nicht zu.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11186
Joined: 2003-02-27 01:00
Location: Hamburg
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by Joe User »

Dann fällt mir spontan nur noch ein, dass Anlegen des Verzeichnis und des Files bereits beim Erstellen des Mailaccounts zu erledigen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Ja, das war ein bisherigen Workaround, da aber die Kunden auch selbst Postfächer anlegen können... Müsste ich mir den postfixadmin anpassen. Bzw. eigentlich müsste es dovecot machen. Klappt aber mit dem inbox Parameter nicht, wie gewünscht.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

ddm3ve wrote: 2019-06-20 10:05 Erst wenn die angelegt wird, klappt dann auch zu Zustellung.
So meckert er rum, dass es das Verzeichnis nicht gibt und stellt die Email nicht zu.
Mhh
Also User Regeln werden angelegt wenn sich die User welche erstellen, ob das Verzeichnis
existiert oder eine (Active) hat ist egal. Normale Mails wandern auch ohne fein
in die INBOX wie sie sollen (getestet über LMTP Übermittlung an DoveCot).
Sonst stimmt was generell nicht in deinem Setup.

Solltest du aber in einem Globalen Script (wie das before) bestimmt haben das Mails in bestimmte andere Mailordner sollen
die nicht existieren. Dann ist dein Script doof oder bestimmte andere Einstellungen nicht Optimal auf deine Bedürfnisse
angepasst.

Mögliche Lösungen ohne dein Setup zu kennen:

Dir fehlt evt. ein ":create" in der Action deines Sieve Scripts das einen Ordner auch anlegt wen er nicht
existiert.
z.B "fileinto :create "SpamOrdner";"

ODER
Du schaust dir die Option "lda_mailbox_autocreate" vom Dovecot an (is default off seit 2.0)
die Ordner anlegt wenn die unbekannt sind.

ODER
du schaust dir "mailbox und auto = subscribe" in der Namesspace config an.
https://wiki.dovecot.org/MailboxSettings

ODER
Wenn das alles zu scarry ist.. wie währe es mit einem LoginScript das ggf.
alles anlegen kann was du willst ?
https://wiki.dovecot.org/PostLoginScripting

ODER
Da du Postfixadmin erwähnst.
"mailbox_postcreation_script" Kann auch ein script aufrufen wenn es sein mus.



gruß
gierig
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Hi,

es geht nur um die Custom Rules.
Sprich, wenn eine Mailbox ganz neu in Postfixadmin angelegt wird.
Konkret um diese dovecot Einstellung:

sieve = file:~/sieve/;active=~/.dovecot.sieve

Zu dem Zeitpunkt, wenn eine Neue Mailbox angelegt wird, gibt es weder den Ordner ./sieve/ wo die Regeln abgelegt werden, noch den Link: .dovecot.sieve.
Erst wenn ich das einmalig manuell anlege klappt es.

Ich habe es versucht mit namespace Einstellung zu lösen,

Code: Select all

namespace inbox {
  mailbox sieve {
  }
}
Leider löst das nicht das Problem, mit dem fehlenden Rulse Script. Auch wenn es erstmal leer ist und dem link dazu.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

Hey,

Mich beschleicht das Gefühl wir reden einander vorbei.
ddm3ve wrote: 2019-07-12 13:05 Konkret um diese dovecot Einstellung:
sieve = file:~/sieve/;active=~/.dovecot.sieve
Zu dem Zeitpunkt, wenn eine Neue Mailbox angelegt wird, gibt es weder den Ordner ./sieve/ wo die Regeln abgelegt werden, noch den Link: .dovecot.sieve.
Ack, as design. Dovecot wird den Ordner und den Link auf active Script anlegen sobald über einen
Sieve Client etwas erstellt wird (und besonders auch den ".dovecot.sieve" link wieder löschen
wenn das Script deaktiviert wird...). Alternativ ist es natürlich möglich diese manual über
über ein Script im Vorfeld anzulegen.
Ich habe es versucht mit namespace Einstellung zu lösen,

Code: Select all

namespace inbox {
  mailbox sieve {
  }
}
MailBox != Sieve. Das eine hat im gründe nichts mit dem anderen zu tun.
namespace und Mailboxen definieren deine (IMAP) mailbox Struktur.
Sieve ist eine Filtersprache um Mail in ihren Boxen zu behandeln.
Leider löst das nicht das Problem, mit dem fehlenden Rulse Script. Auch wenn es erstmal leer ist und dem link dazu.
So welches Problem den genau ? Wie selbst geschrieben sind es Custom Regeln. Ob sie existieren (inklusive Ordner) oder nicht
sollte und darf keinen Einfluss darüber haben ob eine Mail in die Inbox landet oder nicht.
Du schreibst eingangs aber das Mails nicht zugestellt werden. Das Klingt dann doch eher nach einer anderen Baustelle wo was klemmt.
Also was ist dein Ziel und was versuchst du bisher wie zu erreichen ?
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Ich wiederhole es nochmals.

Das Problem:
Wird per Postfixadmin eine Neue Mailbox angelegt, existiert der Ordner ~/sieve nicht, legt er im Gegensatz zur den andren Mailbox Verzeichnissen auch nicht automatisch an.
Das wiederum führt in der Folge dazu, dass Emails nicht zugestellt werden.
Also dovecot an der Stelle einen Fehler meldet und die Lieferung ins Postfach verweigert.

Sobald der Ordner jedoch existiert, werden die Emails zugestellt.
Allerdings bemängelt dovecot dann immer noch den fehlenden Link und Regeln. Letzteres ist lediglich unschön.

Die gewünschte Lösung:
Sobald per Postfixadmin eine Mailbox angelegt wird, sollte der sieve Ordner inkl. einer Standardregel und link angelegt werden. Der fehlende Ordner verursacht Probleme bei der Mailzustellung.

Die fehlende Regel und Link sind eher Kosmetik. Das System bemängelt es, es wäre aber schön, wenn es keine Fehlermeldungen gäbe. Hier wäre eine Datei, wenn auch ohne Regeln und Link ausreichend.

Die Frage wäre also, ist das konfigurativ lösbar oder brauche ich da eine selbst gestrickte Lösung. So jedenfalls ist es weder für uns als Betreiber noch für den Kunden schön, wenn er sich schlussendlich doch wieder bei uns melden muss.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

Ich wiederhole es nochmals.

Das Problem:
Wird per Postfixadmin eine Neue Mailbox angelegt, existiert der Ordner ~/sieve nicht, legt er im Gegensatz zur den andren Mailbox Verzeichnissen auch nicht automatisch an.
Das wiederum führt in der Folge dazu, dass Emails nicht zugestellt werden.
Also dovecot an der Stelle einen Fehler meldet und die Lieferung ins Postfach verweigert.
Ich wiederhole mich auch:

Sieve Verzeichnis und Link zum aktiven Script werden angelegt sobald ein Sieve Client ein Script erstellt.
Das nicht vorhanden sein des Verzeichnis oder Links oder eines Script führt nicht und darf auch nicht dazu führen
das Mails nicht zugestellt werden.


Wenn bei Dir Mails nicht zugestellt werden weil das User Sieve Verzeichnis nicht existiert hast du grundlegend
an einer andere stelle einen Bug.

Was wird den wo genau bemängelt ? (Logfile ?) Wer sagt mit welcher Meldung das Die Mail nicht einsortiert werden kann ?

Und Ja wenn ich DEBUG einschalte bekomme ich auch so was

Code: Select all

Debug: : sieve: file storage: Storage path `/var/vmail/example.com/gierig/sieve' not found
Debug: : sieve: file storage: Storage path `/var/vmail/example.com/gierig/sieve/active-script.sieve' not found
Debug: : sieve: storage: No default script location configured
Debug: : sieve: User has no personal script
Aber das ist Debug level sagt zum Schluss das halt kein personal Script existiert.
Dovecot macht weiter uns stellt die Mail in die Box. Die Meldungen tauchen im normalen Log auch nicht auf
(warum auch es ist ja kein Fehler nur der hinwies im Debug das der kram nicht existiert)

Als Sieve User kann ich doch auch jederzeit mein Script löschen. Dann ist es auch weg oder
deaktivieren dann ist der Link Weg (einige Sieve Clients legen aber ein leeres Script an und aktivieren das)

Mails landen nicht im Postfach wenn versucht wird über ein Globales Script (die before oder After scripte bei DoveCot)
einen unter Ordner zu adressieren des es nicht gibt (daher gibt auch die :create Option in den sieve regeln, oder das autocreate in der Dovecot config das aus Kompatibilität mit 1.x Versionen noch existiert aber eingeschaltet werden muss)
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Die Fehlermeldung ist ziemlich einfach:
Ich habe lediglich ~/sieve gelöscht.

mail.info

Code: Select all

Jul 15 14:42:59 wep001aa postfix/lmtp[8872]: E48E9358A1: to=<support@example.com>, relay=mx.example.com[private/dovecot-lmtp], delay=0.06, delays=0.01/0/0.04/0, dsn=4.2.0, status=deferred (host mx.example.com[private/dovecot-lmtp] said: 451 4.2.0 <support@example.com> Temporarily unable to access necessary Sieve scripts (in reply to end of DATA command))
Das findet sich dann im mail.err

Code: Select all

Jul 15 14:41:40 wep001aa dovecot[6754]: lmtp(support@example.com)<8873><COX6OYR0LF2pIgAAiK8i3Q>: Error: sieve: file storage: Performing t_readlink() on active sieve symlink '(null)' failed: readlink() failed: Bad address
Jul 15 14:41:40 wep001aa dovecot[6754]: lmtp(support@example.com)<8873><COX6OYR0LF2pIgAAiK8i3Q>: Error: sieve: Failed to access active Sieve script in user storage `/var/vmail/example.com/support' (temporary failure)
Jul 15 14:42:59 wep001aa dovecot[6754]: lmtp(support@example.com)<8930><GdrqOtN0LF3iIgAAiK8i3Q>: Error: sieve: file storage: Performing t_readlink() on active sieve symlink '(null)' failed: readlink() failed: Bad address
Jul 15 14:42:59 wep001aa dovecot[6754]: lmtp(support@example.com)<8930><GdrqOtN0LF3iIgAAiK8i3Q>: Error: sieve: Failed to access active Sieve script in user storage `/var/vmail/example.com/support' (temporary failure)
Jetzt lege ~/sieve wieder an mit mkdir.

Und schon kommt es an:

Code: Select all

Jul 15 14:46:25 wep001aa postfix/lmtp[9009]: 42AA0358CD: to=<support@example.com>, relay=mx.example.com[private/dovecot-lmtp], delay=0.07, delays=0.01/0/0/0.05, dsn=2.0.0, status=sent (250 2.0.0 <support@example.com> WF/iEKF1LF0yIwAAiK8i3Q Saved)
Jul 15 14:46:25 wep001aa postfix/qmgr[7703]: 42AA0358CD: removed
Noch als Nachtrag, die globalen Regeln liegen ganz woanders:

Code: Select all

sieve_before = /var/vmail/sieve-after/spam-to-foler.sieve
global_script_path = /etc/sieve/globalsieverc
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

Mhh ich dachte erst anhand der Fehlermeldung OK er den Sieve Ordner gelöscht aber nicht den Link.
Habs bei mir getestet und funktioniert trotzdem....

Welche Version von Dovecot & pigeonhole hast du im Einsatz ? (doveconf -d ganz oben)
bei der 0.4.6 gab es wohl ein paar Probleme.
(ich fahre 2.2.3x mit pigeonhole 0.4.2x)

ganz unten hattest du noch

Code: Select all

global_script_path = /etc/sieve/globalsieverc
global_script_path klingt dovecot < 1.0.1 und damit CMUSieve (cyrus Backport nach Dovecot)
hast du evt. noch andere config Überreste aus alten tagen ? Irgendwas was auf den Sieve Ordner zugreifen
will (wie vacation oder dergleichen)

Verzeichnisrechte oder ein wild gewordenes AppArmor ist bestimmt auch schon geprüft (ich stochere ein wenig)
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

# 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.3 (f018bbab)
# OS: Linux 4.12.14-lp151.28.7-default x86_64

Bei der Konfiguration habe ich mich an die vorhandenen Beispiele gehalten und nein, es gibt keine weitere Konfigurationen. Ich habe auf die includes verzichtet und alles in die dovecot.conf gepackt um den Überblick zu behalten.

Distribution ist Opensuse, mit der ich auch am mysql Support des Postfix kämpfe.
Btw. ich hab mir kürzlich eine andere Distribution gezogen und postfix 3.3.1 dort manuell gebaut. Klappte dort, wie erwartet.
Apparmor sollte / dürfte nicht aktiviert sein. Aber ausschliessen kann ich es nicht.
Verzeichnisrechte passt natürlich, gehört alles dem Benutzer vmail.
Sonst könnte er auch grundsätzlich keine Emails einliefern, oder das Postfach anlegen. Das wiederum klappt ja. Daher der Versuch / Überlegung es mit namespace zu lösen. Roundcube, legt hinterher folgerichtig die Regeln an, wenn man es denn nutzt. Aber ohne das Verzeichnis klappt es nicht.

Wo müsste ich denn schauen, um heraus zu finden, ob mir Apparmor dazwischen funkt?

Den Parameter habe ich aus der Besiepielkonfiguration / Vorlage. Wird nicht genutzt ist lediglich als Vorbereitung für denn Fall, dass.

Code: Select all

global_script_path = /etc/sieve/globalsieverc
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Noch ein Nachtrag,

das Setup habe ich ursprünglich auf einem vHost aufgebaut und verprobt. Auch damals zunächst frisch und Neu aus der Konfigurationsvorlage. Diese entsprechend angepasst. Sowohl mit opensuse 15.0 als auch 15.1 gab es einige fast identische Probleme. Jetzt muss ich aktuell mit dem Konstrukt des Mailservers leben, da opensuse 42.3 aus dem Support raus ist. Schade insgesamt, aber ich bin aktuell am überlegen ob wir uns von Opensuse für die kommende Zeit verabschieden. Hat die letzten 5 Jahre insgesamt gut funktioniert.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

ddm3ve wrote: 2019-07-16 08:26 # Pigeonhole version 0.5.3 (f018bbab)
Konnte so nichts auffälliges zu der version finden. Sollte also erstmal ok sein.
Apparmor sollte / dürfte nicht aktiviert sein. Aber ausschliessen kann ich es nicht.
Wo müsste ich denn schauen, um heraus zu finden, ob mir Apparmor dazwischen funkt?
aa-unconfined & aa-status geben erstmal eine Auskunft ob ein DoveCot Regelsatz überhaupt aktiv ist
sonst syslog oder ggf. zum test einfach kurz abschalten.
....Aber ohne das Verzeichnis klappt es nicht.
Und das ist das seltsame, es wird bei mit einfach angelegt sobald ein SieveClient (wie Roundcube filter Plugin)
da was speichern möchte. Selbst wenn ich dem parent Verzeichnis die schreibrechte entziehe und DoveCot das Sieve Verzeichnis nicht anlegen kann werden mails trotzdem zugestellt. (schreibrechte ins Maildir sind natürlich gegeben). auch wenn der Link ins leere zeigt ist alle immer noch fein und mails kommen an...

Kopfkratz


Als workaround bietet sich wirklich an das Verzeichnis manual anzulegen über ein
// Script to run after creation of mailboxes.
// Note that this may fail if PHP is run in "safe mode", or if
// operating system features (such as SELinux) or limitations
// prevent the web-server from executing external scripts.
// Parameters: (1) username (2) domain (3) maildir (4) quota
// $CONF['mailbox_postcreation_script']='sudo -u courier /usr/local/bin/postfixadmin-mailbox-postcreation.sh';
$CONF['mailbox_postcreation_script'] = '';
mit all den Rattenschwanz dem Webserver oder PHP direkt oder indirekt zu erlauben im Mailstore rumzuwüten.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Letzteres ist unschön und möchte ich vermeiden.
Zumal Webserver und Mailserver getrennte Systeme sind. Also auch aus Sicherheitsgründen keine direkter Zugriff erlaubt / erwünscht ist.
Ich habe dazu mal einen Bug eingestellt: https://bugzilla.opensuse.org/show_bug.cgi?id=1141833
Mal schauen, vielleicht wird es ein cronjob der auf Neue Postfächer prüft und das korrigiert.

Bezüglich dem unused Parameter bei postfix und mysql habe ich die Ursache gefunden:

https://bugzilla.opensuse.org/show_bug.cgi?id=1095144
Es ist ein Bug und es würde mich nun nicht wundern, wenn da noch mehr im Argen liegt.
Es funktioniert tatsächlich, wenn man die Vollen Pfad weg lässt und nur die Datei benennt.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
gierig
Posts: 297
Joined: 2002-10-15 16:59
Location: WHV
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by gierig »

Mhhh die Links im dem Postfix Bug sind interessant. Schaut so aus als wenn der " M4 macro processor" gefehlt hat
auf dem Buildsystem und Postfix da keinen Fehler geschmissen hat.
Dovecot nutzt auch M4 Scripts in ihren Sourcen (der M4 ist ja weder neu noch selten).

Evt. kommt ein selber bauen in frage ?
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Selber bauen, wäre eine alternative .... aber dann müsste ich auch die Hotfixes etc. pflegen. Ds versuche ich eher zu vermeiden. Schauen wir mal, ob und wann Sie es lösen.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

So, vier Jahre später......

Upgrade auf Sles 15.4 und gestern der Umzug auf Ubuntu. Neuer Mailserver neues Glück und irgendwie ist es jedes mal eine neue Herausforderung.

Egal ob ich globale, bevore oder after sieve Script eingebunden habe.
-> Existiert in der Mailbox des Benutzer als der Ordner sieve nicht: sieve = file:~/sieve/;active=~/.dovecot.sieve

Dann verschwindet die Email in nirwana und im errr Log findet sich die Meldung, dass er das Verzeichnis nicht findet.
Auf Seite Opensuse habe ich es mit folgender Konfiguration geschafft.

Code: Select all

namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  mailbox sieve {
  }
  prefix =
}
Ich gebe zu, in der alten Welt habe ich nicht so sauber gearbeitet und alle Konfigurationen in der dovecot.conf zusammen gefasst.

In der Neuen Welt wiederum bin ich konsequenter den Weg der einzelnen Konfigurationdateien gegangen.

Auf Ubuntu 22.04 sieht die Lösung wie folgt aus:
Ich bin viele Schleifen gegangen und hatte zunächst versucht die Mailboxkonfiguration von OpenSuse, ebenfalls dovecot 2.3, 1:1 zu übernehmen.
Das hat mit wirklich teils sehr seltsamen Ergebnissen nicht geklappt.
-> Häufiger war das Postfach mit vielen Verzeichnissen und Unterverzeichnissen versehen. z.B. "INBOX 1 1 1 1 1"
Der Ordner sieve bzw. hier richtiger .sieve wurde nie angelegt.

Daher die Idee es ernut als inbox zu lösen.
Sektion namespace:
/etc/dovecot/conf.d/10-mail.conf

Code: Select all

namespace inbox {
  inbox = yes
/etc/dovecot/conf.d/15-mailboxes.conf

Code: Select all

namespace inbox {
  separator = /
  prefix = INBOX/   # Hier wird das Sieve-Verzeichnis "INBOX" genannt
  location = maildir:~/mails/   # Passe dies entsprechend deiner Maildir-Struktur an

  mailbox Drafts {
    special_use = \Drafts
    auto = subscribe
  }
  mailbox Junk {
    special_use = \Junk
    auto = subscribe
  }
  mailbox Sent {
    special_use = \Sent
    auto = subscribe
  }
  mailbox "Sent Messages" {
    special_use = \Sent
    auto = subscribe
  }
  mailbox Trash {
    special_use = \Trash
    auto = subscribe   # Abonniere das Trash-Verzeichnis
  }

  mailbox sieve {
    auto = create
  }

}

Mit Ubuntu 22.04 ergaben sich noch weitere unterschiede zwischen deovecot auf Opensuse 15.4 und Ubuntu 22.04.
Somit musste ich über einen prefix arbeiten.

Unschön daran: Ein Kunde sieht den Ordner je nach E-mail Client und könnte diesen löschen.
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.
ddm3ve
Moderator
Moderator
Posts: 1246
Joined: 2011-07-04 10:56
 

Re: Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve »

Erledigt.

Meine Idee war es, die Filterregeln im Benutzer-Postfach abzulegen. Leider hat es nicht funktioniert. Das sieve_dir sollte ab dem ersten Maileingang existieren. Es gibt keine elegante Lösung, um dies automatisch anzulegen. Zumindest keine, die nicht auf Post-Skripten aus Postfixadmin und sudo-Regeln zurückgreift.

Da die Benutzer jedoch sowieso die Regeln der anderen Benutzer nicht sehen können, wenn diese im gleichen sieve_dir liegen, habe ich folgende Lösung gefunden:

Code: Select all

sieve_dir = /var/vmail/sieve
sieve = file:/var/vmail/sieve/%u.sieve;active=~/.dovecot.sieve
Das sieve_dir muss existieren, aber es stört Dovecot nicht, wenn keine Regeln vorhanden sind. Der entscheidende Punkt war, dass der Ordner existiert, und diesen Ordner lege ich während der Installation an.

Die Idee, den Ordner über ein Postfach anzulegen, ist daran gescheitert:

Der Benutzer muss sich per IMAP anmelden.
Er muss auf den Ordner zugreifen.
Erst dann legt Dovecot den Ordner physisch an.
Der Ordner für benutzerspezifische Regeln kann jetzt beispielsweise über die Einstellungen/Filter von Roundcube angelegt werden:

Code: Select all

/var/vmail/sieve/benutzer@example.com/roundcube.sieve
Sieve stört sich nicht an dem fehlenden benutzerspezifischen Ordner. Er stört sich nur daran, wenn das sieve_dir nicht existiert. Das Definieren von sieve_dir = ~/sieve war die Stolperfalle.

PS: Aktuell habe ich es mit Ansible geschafft, Webserver, Mailserver und Datenbankserver betriebsbereit einzurichten. Ich arbeite noch an den Webanwendungen wie phpmyadmin, postfixadmin, roundcube usw., damit ein kompletter Webserver mit Kundenzugängen auf "Knopfdruck" aufgebaut werden kann.

Aktuell berücksichtige ich Folgendes:

Installation des Betriebssystems
Aktualisierung des Betriebssystems (OS-Updates)
Installation von notwendigen Anwendungen für verschiedene Anwendungsbereiche (Mailserver, Webserver usw.) - zukünftig auch Docker und Kubernetes Cluster
Konfiguration von Apache Webserver, Postfix, Dovecot, rspamd, clamsmtp, vacation, Quota + Quota-Warnungen
Installation von SSL-Zertifikaten
Einrichtung von SFTP-Zugängen
Generieren von SSH-Keys für Kunden, die es selbst nicht können oder wollen
Installation von Webanwendungen wie postfixadmin (weitere wie roundcube, phpmyadmin, wordpress, shopware folgen)
Einrichtung von Datenbankzugängen und Datenbanken
Ausstehend: Durchführung der Webinstallation (WordPress, Shopware usw.) -> Die Webanwendungen werden nicht über die Pakete der Distribution, sondern direkt von den Entwicklern installiert
Noch offene Punkte:
Installation und spätere Erweiterung des Monitorings:
Icinga, Grafana
Prometheus - ich plane, dies höchstwahrscheinlich als Docker-Container zu installieren
Elastic Search
Alles ist so konfiguriert, dass der Anwender nur noch die Zugangsdaten eingeben muss und loslegen kann. Ich weiß, dass viele Dinge auch über Docker-Container gelöst werden könnten. Das war jedoch nicht mein Ansatz, da es für typisches Webhosting zu viel Planungsaufwand für Ports und Proxy-Regeln erfordert. Es ist jedoch möglich, dies auch mit Docker-Containern zu erreichen, wenn gewünscht.

In diesem Sinne, ein schönes Wochenende!
02:32:12 21.12.2012 und dann sind Deine Probleme alle unwichtig.