Dovecote sieve, custom rules / rules dir automatisch anlegen

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

Dovecote sieve, custom rules / rules dir automatisch anlegen

Post by ddm3ve » 2019-06-19 15:51

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: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

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

Post by Joe User » 2019-06-19 21:42

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-06-20 10:05

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: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

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

Post by Joe User » 2019-06-20 14:06

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-06-20 15:22

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-04 16:52

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-12 13:05

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-13 01:34

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-15 11:11

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-15 14:32

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-15 14:54

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-15 21:20

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-16 08:26

# 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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-16 09:30

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-16 23:15

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-17 13:18

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: 292
Joined: 2002-10-15 16:59
Location: WHV

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

Post by gierig » 2019-07-17 17:33

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: 1187
Joined: 2011-07-04 10:56

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

Post by ddm3ve » 2019-07-17 17:41

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.