An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20211118/1b4e413c/attachment.htm>
Kees van Vloten
2021-Nov-18 11:25 UTC
Can sieve-script run when saving mail in Sent folder?
On 18-11-2021 01:01, Gedalya wrote:> > On 11/18/21 06:43, Kees van Vloten wrote: > >> I was expecting through imapsieve_mailboxXXX_* but can find a >> combination of parameters are correct. Does anybody have this >> working? and how? > > > plugin { > > ? sieve_plugins = sieve_imapsieve > > ? imapsieve_mailbox1_name = Sent > ? imapsieve_mailbox1_causes = APPEND COPY > ? imapsieve_mailbox1_before = file:~/sieve/IMAP-Sent.sieve > > } > > > protocol imap { > ? mail_plugins = $mail_plugins imap_sieve > } > > This works fine. What exactly is your issue? > > >I use Thunderbird 78.14.0 (on Debian Bullseye) as the mail-client to test with. After sending a message the copy is stored in Sent but not moved to Sent/example.com. There is no trace in the logs that it did try to run the sieve-script (can I enable specific debug logging for this?) I ran the script manually with sieve-filter (after removing requirements "copy" and "imapsieve") it worked properly and moved the messages. vmail at server:~$ ls -l /var/lib/dovecot/sieve/imap/sent_mail_per_domain.sieve -rw------- 1 vmail vmail 140 Nov 17 21:00 /var/lib/dovecot/sieve/imap/sent_mail_per_domain.sieve vmail at server:~$ cat /var/lib/dovecot/sieve/imap/sent_mail_per_domain.sieve require ["fileinto", "variables", "mailbox", "copy", "imapsieve"]; if header :matches "From" "*@*>?" { ??? fileinto :create "Sent~${2}"; } Note that tilde (~) is the defined separator in "namespace inbox". dovecot -n # 2.3.13 (89f716dc2): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.13 (cdd19fe3) # OS: Linux 5.10.0-9-amd64 x86_64 Debian 11.1 # Hostname: server.example.com auth_default_realm = EXAMPLE.COM auth_gssapi_hostname = server.example.com auth_krb5_keytab = /etc/keytab/dovecot.keytab auth_master_user_separator = * auth_mechanisms = gssapi gss-spnego plain auth_realms = EXAMPLE.COM disable_plaintext_auth = no first_valid_gid = 986 first_valid_uid = 990 imap_client_workarounds = tb-extra-mailbox-sep login_greeting = Dovecot ready. mail_debug = yes mail_gid = 986 mail_location = maildir:%h/%d/%n/store:LAYOUT=fs:FULLDIRNAME=0_FolderContent:UTF-8:INDEX=%h/%d/%n/index:CONTROL=%h/%d/%n/control:VOLATILEDIR=%h/%d/%n/volatile mail_plugins = zlib notify push_notification listescape acl fts fts_xapian mail_shared_explicit_inbox = yes mail_uid = 990 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 vacation-seconds spamtest imapflags notify imapsieve vnd.dovecot.imapsieve namespace inbox { ? inbox = yes ? list = yes ? location ? mailbox Drafts { ??? auto = subscribe ??? special_use = \Drafts ? } ? mailbox Inbox { ??? auto = subscribe ? } ? mailbox Junk { ??? auto = subscribe ??? special_use = \Junk ? } ? mailbox Sent { ??? auto = subscribe ??? special_use = \Sent ? } ? mailbox Trash { ??? auto = subscribe ??? special_use = \Trash ? } ? prefix ? separator = ~ ? subscriptions = yes ? type = private } passdb { ? args = username_format=%u /etc/dovecot/master-users ? driver = passwd-file ? master = yes } passdb { ? args = /etc/dovecot/ldap_user_to_principal.conf.ext ? driver = ldap ? pass = yes } passdb { ? driver = pam } plugin { ? acl = vfile:/var/lib/dovecot/global-acls:cache_secs=1 ? acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes ? autocreate = Trash ? autocreate2 = Drafts ? autocreate3 = Sent ? autosubscribe = Trash ? autosubscribe2 = Drafts ? autosubscribe3 = Sent ? fts = xapian ? fts_autoindex = yes ? fts_autoindex_exclude = \Trash ? fts_decoder = decode2text ? fts_enforced = yes ? fts_xapian = partial=3 full=20 ? imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve/imap/learn-spam.sieve ? imapsieve_mailbox1_causes = COPY ? imapsieve_mailbox1_name = Junk ? imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve/imap/learn-ham.sieve ? imapsieve_mailbox2_causes = COPY ? imapsieve_mailbox2_from = Junk ? imapsieve_mailbox2_name = * ? imapsieve_mailbox3_before = file:/var/lib/dovecot/sieve/imap/sent_mail_per_domain.sieve ? imapsieve_mailbox3_causes = APPEND COPY ? imapsieve_mailbox3_name = Sent ? listescape_char = \ ? sieve = file:%h/%d/%n/sieve/sieve;active=%h/%d/%n/sieve/active.sieve ? sieve_after = /var/lib/dovecot/sieve/after ? sieve_before = /var/lib/dovecot/sieve/before ? sieve_default = /var/lib/dovecot/sieve/default.sieve ? sieve_extensions = +vacation-seconds +reject +notify +imapflags +spamtest ? sieve_global = /var/lib/dovecot/sieve/global_include ? sieve_global_extensions = +vnd.dovecot.pipe ? sieve_pipe_bin_dir = /var/lib/dovecot/sieve/bin ? sieve_plugins = sieve_imapsieve sieve_extprograms ? sieve_vacation_default_period = 1d ? sieve_vacation_max_period = 1d ? sieve_vacation_min_period = 10s ? sieve_vacation_use_original_recipient = yes } postmaster_address = sysadmin at example.com protocols = " imap lmtp sieve submission" service auth { ? unix_listener /var/spool/postfix/private/auth { ??? group = postfix ??? mode = 0660 ??? user = postfix ? } } service decode2text { ? executable = script /usr/local/sbin/decode2text.sh ? unix_listener decode2text { ??? mode = 0666 ? } ? user = dovecot } service imap-login { ? inet_listener imap { ??? port = 0 ? } ? inet_listener imaps { ??? port = 993 ??? ssl = yes ? } ? process_min_avail = 1 } service imap-postlogin { ? executable = script-login -d rawlog } service imap { ? executable = imap } service indexer-worker { ? vsz_limit = 2 G } service lmtp { ? unix_listener /var/spool/postfix/private/dovecot-lmtp { ??? group = postfix ??? mode = 0600 ??? user = postfix ? } } service submission-login { ? inet_listener submission { ??? port = 465 ??? ssl = yes ? } } ssl = required ssl_cert = </etc/dovecot/private/dovecot.pem ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM ssl_client_ca_dir = /etc/ssl/certs ssl_curve_list = X25519:secp521r1:secp384r1:prime256v1 ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 submission_client_workarounds = whitespace-before-path submission_relay_host = server.example.com submission_relay_password = # hidden, use -P to show it submission_relay_ssl = smtps submission_relay_user = dovecot at server userdb { ? args = /etc/dovecot/ldap_list_users.conf.ext ? driver = ldap ? result_success = continue } userdb { ? args = /etc/dovecot/ldap_user_domain.conf.ext ? driver = ldap ? result_success = continue } userdb { ? args = uid=vmail gid=vmail home=/srv/mail/vmail allow_all_users=yes ? driver = static } protocol lmtp { ? mail_plugins = zlib notify push_notification listescape acl fts fts_xapian sieve } protocol lda { ? mail_plugins = zlib notify push_notification listescape acl fts fts_xapian sieve } protocol imap { ? mail_max_userip_connections = 50 ? mail_plugins = zlib notify push_notification listescape acl fts fts_xapian imap_acl imap_sieve } -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20211118/d4522d2c/attachment-0001.htm>