On 6/30/24 16:48, John Fawcett via dovecot wrote:

On 30/06/2024 07:17, Benjamin Rose via dovecot wrote:
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

Hi Ben

what version of Pigeonhole are you using?

I read here that sieve_dir is deprecated since v0.3.1

https://doc.dovecot.org/settings/pigeonhole/#pigeonhole_setting-sieve_dir

In any case these settings look as though they don't really match up. Is the correct directory .sieve or sieve?

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

Also, I was curious if your inboxes are really under /var/spool/mail/%u and your indexes under /home/%u/indexes?

John

_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org


Hello,

Thank you! Adding the line to puppet to enforce that this exists in /etc/dovecot/conf.d/90-sieve.conf:

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

has solved the problem. Filters now work as expected!

To answer your questions, I am using dovecot-pigeonhole-2.3.16-8.el9.x86_64, and yes, user mail spools live under /var/spool/mail (NFS-mounted mbox files) and indexes live under /home (local disk - soon to be SSD). That's only for users who are using mbox format / pine / mutt. Most users are using only modern clients and in this case their storage is mdbox and entirely kept inside of /home. This is configured on a per-user basis inside of an LDAP value named mailMessageStore. Either it exists such as "mdbox:/home/<username>/mail", or it does not exist at all, in which case, delivery falls back to old-style mbox format. If they are on mbox format, only INBOX is kept in /var/spool/mail, all other folders are kept in ~/mail (/u/<username>/mail/).

Ben


_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to