Hello,
I'm in the process of moving our mail server from RHEL 6 to RHEL 9. We
will be moving to:
# dovecot --version
2.3.16 (7e2e900c1a)
My issue is that sieve does not appear to work on the new setup, where
it does work on the old one. I made a simple filter rule:
# cat /u/mail0test/.sieve/ingo.sieve
# Sieve Filter
# Generated by Ingo (http://www.horde.org/apps/ingo/) (06/28/2024,
11:14:52 PM)
require "fileinto";
# Test
if header :comparator "i;ascii-casemap" :contains "Subject" "filtertest" {
fileinto "Fun";
stop;
}
Upon sending an email to this test account, the following appears in
/var/log/maillog:
Jun 29 23:19:56 mail5 dovecot[3066980]:
lda(mail0test)<3066980><FA8fFtzOgGZkzC4AuM9lWg>: Warning: sieve: file
storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is
broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve).
Jun 29 23:19:56 mail5 dovecot[2987026]:
doveadm(mail0test)<3066983><KFf4FtzOgGZnzC4AuM9lWg>: Warning: sieve:
file storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is
broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve).
Jun 29 23:19:56 mail5 dovecot[2987026]:
doveadm(mail0test)<3067016><VdsdK9zOgGaIzC4AuM9lWg>: Warning: sieve:
file storage: Active sieve script symlink /u/mail0test/.dovecot.sieve is
broken: Invalid/unknown path to storage (points to /u/mail0test/.sieve).
Yet:
# ll /u/mail0test/.dovecot.sieve
lrwxrwxrwx. 1 mail0test sysguest 17 Jun 28 23:26
/u/mail0test/.dovecot.sieve -> .sieve/ingo.sieve
# file /u/mail0test/.sieve/ingo.sieve
/u/mail0test/.sieve/ingo.sieve: ASCII text
That is the filter file I've pasted above.
I've set the following directives in /etc/dovecot/conf.d/90-sieve.conf
via puppet:
augeas {
"dovecot_sieve_settings":
context => "/files/etc/dovecot/conf.d/90-sieve.conf",
changes => [
"set plugin/sieve_dir ~/.sieve",
"set plugin/sieve_user_log ~/.sieve/log"
],
require => Package["dovecot"],
notify => Service["dovecot"];
}
The full configuration dump is attached.
/u in our environment is the path for user homedirs, which is an NFS
mount to a NetApp. The OS is Springdale Linux 9.2, a clone of RedHat
from before the IBM license change. It will soon be RHEL 9.4 as we have
obtained a license, but for all intents and purposes, Springdale 9.2 and
RHEL 9.2 should be considered bug-for-bug compatible. The arch is x86_64
with both machines mail5 and mail6 (replicated) having Intel(R) Xeon(R)
Gold 6244 CPU @ 3.60GHz and 768gb of memory. I have the same issue with
SELinux in both enforcing and permissive modes, so this is not a
permissions error due to SELinux.
Am I doing something wrong, or is this a bug? I've seen that there have
been some previous issues similar to this that ended up being bugs in
pigeonhole, so here I am.
Thanks,
Ben
# dovecot -n
# 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.16 (09c29328)
# OS: Linux 5.14.0-284.11.1.el9_2.x86_64 x86_64 Springdale Open Enterprise
Linux release 9.2 (Parma)
# Hostname: mail5.math.princeton.edu.private
auth_cache_negative_ttl = 5 mins
auth_cache_size = 32 M
auth_debug = yes
auth_mechanisms = plain login
auth_username_format = %Ln
auth_verbose = yes
auth_verbose_passwords = sha1
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
first_valid_gid = 500
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u:INDEX=/home/%u/indexes
mail_nfs_storage = yes
mail_plugins = " fts fts_squat zlib notify replication"
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy
include variables body enotify environment mailbox date index ihave duplicate
mime foreverypart extracttext
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
}
prefix =
}
passdb {
args = /etc/dovecot/deny-users
deny = yes
driver = passwd-file
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
fts = squat
fts_squat = partial=4 full=10
mail_replica = tcp:mail6.math.princeton.edu.private:12345
replication_sync_timeout = 2
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_dir = ~/.sieve
sieve_user_log = ~/.sieve/log
}
protocols = imap lmtp
replication_max_conns = 64
service aggregator {
fifo_listener replication-notify-fifo {
group = mail
mode = 0666
user = dovecot
}
unix_listener replication-notify {
group = mail
mode = 0666
user = dovecot
}
}
service anvil {
unix_listener anvil {
group = mail
mode = 0666
}
}
service auth {
unix_listener auth-userdb {
mode = 0666
}
}
service doveadm {
inet_listener {
port = 12345
}
vsz_limit = 128 G
}
service imap-login {
process_min_avail = 4
service_count = 0
vsz_limit = 512 M
}
service imap {
vsz_limit = 4 G
}
service lmtp {
inet_listener lmtp {
address = *
port = 24
}
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
group = mail
mode = 0666
user = dovecot
}
}
service stats {
unix_listener stats-reader {
group = mail
mode = 0666
}
unix_listener stats-writer {
group = mail
mode = 0666
}
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/imap.math.princeton.edu.crt
ssl_cipher_list = PROFILE=SYSTEM
ssl_key = # hidden, use -P to show it
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
protocol lmtp {
mail_plugins = " fts fts_squat zlib notify replication sieve"
}
protocol lda {
mail_plugins = " fts fts_squat zlib notify replication sieve"
}
protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep tb-lsub-flags
mail_max_userip_connections = 128
mail_plugins = " fts fts_squat zlib notify replication imap_zlib"
}
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org