<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Good morning.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I’m using Dovcot 2.3.5 and Pigeonhole 0.5.5.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>My server is located behind a content-filtering firewall that will mark incoming messages by adding “[SPAM]” to the subject line. I’m 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:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>   require ["fileinto"];<o:p></o:p></p><p class=MsoNormal>   if anyof (header :contains "Subject" "[SPAM]",<o:p></o:p></p><p class=MsoNormal>             header :contains "X-Spam-Flag" "Yes")<o:p></o:p></p><p class=MsoNormal>   {<o:p></o:p></p><p class=MsoNormal>       fileinto "Spam";<o:p></o:p></p><p class=MsoNormal>       stop;<o:p></o:p></p><p class=MsoNormal>   }<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I can see in the logs that Sieve is loaded, and also the imapsieve_plugin<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>   Debug: sieve: Pigeonhole version 0.5.5 (2483b085) initializing<o:p></o:p></p><p class=MsoNormal>   Debug: sieve: Sieve imapsieve plugin for Pigeonhole version 0.5.5 (2483b085) loaded<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>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?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Here is the output from “Dovecot -n”:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal># 2.3.5 (513208660): /etc/dovecot/dovecot.conf<o:p></o:p></p><p class=MsoNormal># Pigeonhole version 0.5.5 (2483b085)<o:p></o:p></p><p class=MsoNormal># OS: Linux 3.10.0-957.5.1.el7.x86_64 x86_64 CentOS Linux release 7.6.1810 (Core)  xfs<o:p></o:p></p><p class=MsoNormal># Hostname: <redacted><o:p></o:p></p><p class=MsoNormal>auth_master_user_separator = *<o:p></o:p></p><p class=MsoNormal>auth_mechanisms = PLAIN LOGIN<o:p></o:p></p><p class=MsoNormal>auth_verbose_passwords = plain<o:p></o:p></p><p class=MsoNormal>deliver_log_format = from=%{from}, envelope_sender=%{from_envelope}, subject=%{subject}, msgid=%m, size=%{size}, %$<o:p></o:p></p><p class=MsoNormal>dict {<o:p></o:p></p><p class=MsoNormal>  acl = pgsql:/etc/dovecot/dovecot-share-folder.conf<o:p></o:p></p><p class=MsoNormal>  quotadict = pgsql:/etc/dovecot/dovecot-used-quota.conf<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>first_valid_uid = 2000<o:p></o:p></p><p class=MsoNormal>imapc_features = fetch-bodystructure fetch-headers<o:p></o:p></p><p class=MsoNormal>imapc_host = <redacted><o:p></o:p></p><p class=MsoNormal>imapc_port = 993<o:p></o:p></p><p class=MsoNormal>imapc_ssl = imaps<o:p></o:p></p><p class=MsoNormal>imapc_ssl_verify = no<o:p></o:p></p><p class=MsoNormal>last_valid_uid = 2000<o:p></o:p></p><p class=MsoNormal>listen = * [::]<o:p></o:p></p><p class=MsoNormal>mail_debug = yes<o:p></o:p></p><p class=MsoNormal>mail_gid = 2000<o:p></o:p></p><p class=MsoNormal>mail_home = /var/mail/imapc/home/%d/%n<o:p></o:p></p><p class=MsoNormal>mail_location = imapc:/var/mail/imapc/%d/%n<o:p></o:p></p><p class=MsoNormal>mail_plugins = mailbox_alias mail_log notify<o:p></o:p></p><p class=MsoNormal>mail_uid = 2000<o:p></o:p></p><p class=MsoNormal>managesieve_notify_capability = mailto<o:p></o:p></p><p class=MsoNormal>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<o:p></o:p></p><p class=MsoNormal>namespace inbox {<o:p></o:p></p><p class=MsoNormal>  inbox = yes<o:p></o:p></p><p class=MsoNormal>  list = yes<o:p></o:p></p><p class=MsoNormal>  location =<o:p></o:p></p><p class=MsoNormal>  prefix =<o:p></o:p></p><p class=MsoNormal>  separator = .<o:p></o:p></p><p class=MsoNormal>  type = private<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>passdb {<o:p></o:p></p><p class=MsoNormal>  args = host=<redacted><o:p></o:p></p><p class=MsoNormal>  default_fields = userdb_imapc_user=%u userdb_imapc_password=#hidden_use-P_to_show#<o:p></o:p></p><p class=MsoNormal>  driver = imap<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>passdb {<o:p></o:p></p><p class=MsoNormal>  args = /etc/dovecot/dovecot-master-users<o:p></o:p></p><p class=MsoNormal>  driver = passwd-file<o:p></o:p></p><p class=MsoNormal>  master = yes<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>plugin {<o:p></o:p></p><p class=MsoNormal>  imapsieve_default = /var/vmail/sieve/global/spam_rule.sieve<o:p></o:p></p><p class=MsoNormal>  mail_log_events = delete undelete expunge mailbox_delete mailbox_rename<o:p></o:p></p><p class=MsoNormal>  mail_log_fields = uid box msgid size from subject<o:p></o:p></p><p class=MsoNormal>  mailbox_alias_new = Sent Messages<o:p></o:p></p><p class=MsoNormal>  mailbox_alias_new2 = Sent Items<o:p></o:p></p><p class=MsoNormal>  mailbox_alias_old = Sent<o:p></o:p></p><p class=MsoNormal>  mailbox_alias_old2 = Sent<o:p></o:p></p><p class=MsoNormal>  sieve_global_dir = /var/vmail/sieve/global/<o:p></o:p></p><p class=MsoNormal>  sieve_max_redirects = 30<o:p></o:p></p><p class=MsoNormal>  sieve_plugins = sieve_imapsieve<o:p></o:p></p><p class=MsoNormal>  sieve_trace_debug = yes<o:p></o:p></p><p class=MsoNormal>  sieve_trace_dir = /var/log/dovecot<o:p></o:p></p><p class=MsoNormal>  sieve_trace_level = matching<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>protocols = imap sieve<o:p></o:p></p><p class=MsoNormal>service auth {<o:p></o:p></p><p class=MsoNormal>  unix_listener /var/spool/postfix/private/dovecot-auth {<o:p></o:p></p><p class=MsoNormal>    group = postfix<o:p></o:p></p><p class=MsoNormal>    mode = 0666<o:p></o:p></p><p class=MsoNormal>    user = postfix<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>  unix_listener auth-master {<o:p></o:p></p><p class=MsoNormal>    group = vmail<o:p></o:p></p><p class=MsoNormal>    mode = 0666<o:p></o:p></p><p class=MsoNormal>    user = vmail<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>  unix_listener auth-userdb {<o:p></o:p></p><p class=MsoNormal>    group = vmail<o:p></o:p></p><p class=MsoNormal>    mode = 0660<o:p></o:p></p><p class=MsoNormal>    user = vmail<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>service dict {<o:p></o:p></p><p class=MsoNormal>  unix_listener dict {<o:p></o:p></p><p class=MsoNormal>    group = vmail<o:p></o:p></p><p class=MsoNormal>    mode = 0660<o:p></o:p></p><p class=MsoNormal>    user = vmail<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>service imap-login {<o:p></o:p></p><p class=MsoNormal>  process_limit = 500<o:p></o:p></p><p class=MsoNormal>  service_count = 1<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>service lmtp {<o:p></o:p></p><p class=MsoNormal>  executable = lmtp -L<o:p></o:p></p><p class=MsoNormal>  inet_listener lmtp {<o:p></o:p></p><p class=MsoNormal>    address = 127.0.0.1<o:p></o:p></p><p class=MsoNormal>    port = 24<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>  process_min_avail = 5<o:p></o:p></p><p class=MsoNormal>  unix_listener /var/spool/postfix/private/dovecot-lmtp {<o:p></o:p></p><p class=MsoNormal>    group = postfix<o:p></o:p></p><p class=MsoNormal>    mode = 0600<o:p></o:p></p><p class=MsoNormal>    user = postfix<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>  user = vmail<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>service managesieve-login {<o:p></o:p></p><p class=MsoNormal>  inet_listener sieve {<o:p></o:p></p><p class=MsoNormal>    address = 127.0.0.1<o:p></o:p></p><p class=MsoNormal>    port = 4190<o:p></o:p></p><p class=MsoNormal>  }<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>ssl = required<o:p></o:p></p><p class=MsoNormal>ssl_cert = </etc/letsencrypt/live/mgrids.dynu.com/fullchain.pem<o:p></o:p></p><p class=MsoNormal>ssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5<o:p></o:p></p><p class=MsoNormal>ssl_client_ca_file = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem<o:p></o:p></p><p class=MsoNormal>ssl_dh = # hidden, use -P to show it<o:p></o:p></p><p class=MsoNormal>ssl_key = # hidden, use -P to show it<o:p></o:p></p><p class=MsoNormal>ssl_prefer_server_ciphers = yes<o:p></o:p></p><p class=MsoNormal>syslog_facility = local5<o:p></o:p></p><p class=MsoNormal>userdb {<o:p></o:p></p><p class=MsoNormal>  driver = prefetch<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>protocol imap {<o:p></o:p></p><p class=MsoNormal>  imap_client_workarounds = tb-extra-mailbox-sep<o:p></o:p></p><p class=MsoNormal>  mail_max_userip_connections = 30<o:p></o:p></p><p class=MsoNormal>  mail_plugins = mailbox_alias mail_log notify imap_sieve<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal>protocol sieve {<o:p></o:p></p><p class=MsoNormal>  info_log_path = /var/log/dovecot/sieve-info.log<o:p></o:p></p><p class=MsoNormal>  log_path = /var/log/dovecot/sieve-err.log<o:p></o:p></p><p class=MsoNormal>  managesieve_implementation_string = Dovecot Pigeonhole<o:p></o:p></p><p class=MsoNormal>  managesieve_max_line_length = 65536<o:p></o:p></p><p class=MsoNormal>}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>