I case someone is interesed too, why it was not working:
Am 14.01.19 um 20:22 schrieb Ralf Becker:
I have to reject office files for a certain domain plus notifying the original recipient about the rejection too.
require ["fileinto","reject","body","enotify","variables"];
if allof (address :contains ["To","TO","Cc","CC"] "@example.org", body :content "application/msword" :contains "") { set "to" "${1}";
The set does not work in allof with an other condition, so I use now:
if address :contains ["To","TO","Cc","CC"] "@example.org" { set "to" "${1}"; }
# :matches is used to get the value of the Subject header if header :matches "Subject" "*" { set "subject" "${1}"; } # :matches is used to get the value of the From header if header :matches "From" "*" { set "from" "${1}"; } notify :message "Rejected Office Datei ${from}: ${subject}" "${to}";
The notify needs as argument "mailto:${to}".
reject text: Aus Sicherheitsgründen nehmen wir keine Office Dateien mehr an. Bitte senden Sie uns ein PDF. . ; }
A manual sievec call gives not error and if I remove everything but the reject line it works.
Any ideas?
I used the sieve-test binary to figure out why it was not working.
My full script for checking mime-types as well as extensions and also notifying the orginal recipient is now the following:
require [ "foreverypart", "mime", "fileinto","reject","body","enotify","variables"];
if address :contains ["To","TO","Cc","CC"] "@example.org" { # :matches is used to get value of to, subject and from if address :matches ["To","TO","Cc","CC"] "*" { set "to" "${1}"; } if header :matches "Subject" "*" { set "subject" "${1}"; } if header :matches "From" "*" { set "from" "${1}"; }
# reject based on mime-type if allof(body :content "application/msword" :contains "", body :content "application/msexcel" :contains "") { # send notification to original recipient notify :message "Rejected Office Datei von ${from}: ${subject}" "mailto:${to}"; # send rejection message to sender reject text: Aus Sicherheitsgründen nehmen wir keine Office Dateien mehr an. Bitte senden Sie uns ein PDF.
Ralf Becker EGroupware GmbH . ; stop; } # reject based on extension of attachment foreverypart { if header :mime :param "filename" :matches ["Content-Type", "Content-Disposition"] ["*.doc","*.xsl"] { # send notification to original recipient notify :message "Rejected Dateierweiterung/Fileextension ${from}: ${subject}" "mailto:${to}"; # send rejection message to sender reject text: Aus Sicherheitsgründen nehmen wir kein Office Dateien mehr an. Bitte senden Sie uns ein PDF.
Ralf Becker EGroupware GmbH . ; stop; } } }
Ralf
-- Ralf Becker EGroupware GmbH [www.egroupware.org] Handelsregister HRB Kaiserslautern 3587 Geschäftsführer Birgit und Ralf Becker Leibnizstr. 17, 67663 Kaiserslautern, Germany Telefon +49 631 31657-0