Stephan-- Thank you for the troubleshooting link. I've already been through that and every other HowTo I could find. The likely underlying problem is that I'm not using an LDA -- I'm simply using this as a proxy using IMAPC.
I can define static rules in dovecot.conf and they get triggered (e.g., when moving a message between folders), similar to this: imapsieve_mailbox1_name = * imapsieve_mailbox1_causes = COPY APPEND FLAG imapsieve_mailbox1_before = file:/var/vmail/sieve/global/spam_rule.sieve This will trigger on an existing message, such as if I manually move a message from the inbox into trash, or mark the message as read. What I want to have happen is for this rule (or something similar) to trigger when a message is initially received into the inbox. Op 08/03/2019 om 15:12 schreef Fred via dovecot: > > Good morning. > > I am using Dovecot as an IMAP proxy -- using IMAPC -- and the system > is working great. Thank you for contributing such great software to > the community! > > Im using Dovcot 2.3.5 and Pigeonhole 0.5.5. > > My server is located behind a content-filtering firewall that will > mark incoming messages by adding [SPAM] to the subject line. Im > trying to use Sieve to identify those messages and move them into the > Spam folder. I have a basic Sieve script that looks like this: > > require ["fileinto"]; > > if anyof (header :contains "Subject" "[SPAM]", > > header :contains "X-Spam-Flag" "Yes") > > { > > fileinto "Spam"; > > stop; > > } > > I can see in the logs that Sieve is loaded, and also the > imapsieve_plugin > > Debug: sieve: Pigeonhole version 0.5.5 (2483b085) initializing > > Debug: sieve: Sieve imapsieve plugin for Pigeonhole version 0.5.5 > (2483b085) loaded > > Sieve detects outbound messages (from the log: Debug: imapsieve: > mailbox INBOX.Sent: APPEND event) but nothing registers for inbound, > and my spam_rule is never triggered. Any suggestions? > https://wiki.dovecot.org/Pigeonhole/Sieve/Troubleshooting > Here is the output from Dovecot -n: > > # 2.3.5 (513208660): /etc/dovecot/dovecot.conf > > # Pigeonhole version 0.5.5 (2483b085) > > # OS: Linux 3.10.0-957.5.1.el7.x86_64 x86_64 CentOS Linux release > 7.6.1810 (Core) xfs > > # Hostname: <redacted> > > auth_master_user_separator = * > > auth_mechanisms = PLAIN LOGIN > > auth_verbose_passwords = plain > > deliver_log_format = from=%{from}, envelope_sender=%{from_envelope}, > subject=%{subject}, msgid=%m, size=%{size}, %$ > > dict { > > acl = pgsql:/etc/dovecot/dovecot-share-folder.conf > > quotadict = pgsql:/etc/dovecot/dovecot-used-quota.conf > > } > > first_valid_uid = 2000 > > imapc_features = fetch-bodystructure fetch-headers > > imapc_host = <redacted> > > imapc_port = 993 > > imapc_ssl = imaps > > imapc_ssl_verify = no > > last_valid_uid = 2000 > > listen = * [::] > > mail_debug = yes > > mail_gid = 2000 > > mail_home = /var/mail/imapc/home/%d/%n > > mail_location = imapc:/var/mail/imapc/%d/%n > > mail_plugins = mailbox_alias mail_log notify > > mail_uid = 2000 > > 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 imapsieve vnd.dovecot.imapsieve > > namespace inbox { > > inbox = yes > > list = yes > > location = > > prefix = > > separator = . > > type = private > > } > > passdb { > > args = host=<redacted> > > default_fields = userdb_imapc_user=%u > userdb_imapc_password=#hidden_use-P_to_show# > > driver = imap > > } > > passdb { > > args = /etc/dovecot/dovecot-master-users > > driver = passwd-file > > master = yes > > } > > plugin { > > imapsieve_default = /var/vmail/sieve/global/spam_rule.sieve > > mail_log_events = delete undelete expunge mailbox_delete > mailbox_rename > > mail_log_fields = uid box msgid size from subject > > mailbox_alias_new = Sent Messages > > mailbox_alias_new2 = Sent Items > > mailbox_alias_old = Sent > > mailbox_alias_old2 = Sent > > sieve_global_dir = /var/vmail/sieve/global/ > > sieve_max_redirects = 30 > > sieve_plugins = sieve_imapsieve > > sieve_trace_debug = yes > > sieve_trace_dir = /var/log/dovecot > > sieve_trace_level = matching > > } > > protocols = imap sieve > > service auth { > > unix_listener /var/spool/postfix/private/dovecot-auth { > > group = postfix > > mode = 0666 > > user = postfix > > } > > unix_listener auth-master { > > group = vmail > > mode = 0666 > > user = vmail > > } > > unix_listener auth-userdb { > > group = vmail > > mode = 0660 > > user = vmail > > } > > } > > service dict { > > unix_listener dict { > > group = vmail > > mode = 0660 > > user = vmail > > } > > } > > service imap-login { > > process_limit = 500 > > service_count = 1 > > } > > service lmtp { > > executable = lmtp -L > > inet_listener lmtp { > > address = 127.0.0.1 > > port = 24 > > } > > process_min_avail = 5 > > unix_listener /var/spool/postfix/private/dovecot-lmtp { > > group = postfix > > mode = 0600 > > user = postfix > > } > > user = vmail > > } > > service managesieve-login { > > inet_listener sieve { > > address = 127.0.0.1 > > port = 4190 > > } > > } > > ssl = required > > ssl_cert = </etc/letsencrypt/live/mgrids.dynu.com/fullchain.pem > > ssl_cipher_list = > ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3D > ECDH+ES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5 > > ssl_client_ca_file = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem > > ssl_dh = # hidden, use -P to show it > > ssl_key = # hidden, use -P to show it > > ssl_prefer_server_ciphers = yes > > syslog_facility = local5 > > userdb { > > driver = prefetch > > } > > protocol imap { > > imap_client_workarounds = tb-extra-mailbox-sep > > mail_max_userip_connections = 30 > > mail_plugins = mailbox_alias mail_log notify imap_sieve > > } > > protocol sieve { > > info_log_path = /var/log/dovecot/sieve-info.log > > log_path = /var/log/dovecot/sieve-err.log > > managesieve_implementation_string = Dovecot Pigeonhole > > managesieve_max_line_length = 65536 > > } >