sieve_max_script_size is ignored
Stephan Bosch
stephan at rename-it.nl
Wed Aug 19 18:01:53 EEST 2020
Op 19-8-2020 om 13:47 schreef Zdeněk Zámečník:
> I am in troubles with compiling sieve scripts larger than 1MB.
> I see in logs following errors:
> Aug 19 13:10:26 mail dovecot: lmtp(z.z at xxx.xxx)<22117><uNBGHKIIPV9lVgAA5ldI4A>: Error: sieve: autoreply: line 16818: quoted string started at line 3 is too long (longer than 1048576 bytes)
> Aug 19 13:10:26 mail dovecot: lmtp(z.z at xxx.xxx)<22117><uNBGHKIIPV9lVgAA5ldI4A>: Error: sieve: autoreply: parse failed
> Aug 19 13:10:26 mail dovecot: lmtp(z.z at xxx.xxx)<22117><uNBGHKIIPV9lVgAA5ldI4A>: Error: sieve: Failed to compile script `/var/vmail/xxx.xxx/z.z/sieve/autoreply.sieve'
>
> I tried to set sieve_max_script_size = 2M or 0 (unlimited). I also tried to run "sievec -o sieve_max_script_size=2M /var/vmail/xxx.xxx/z.z/sieve/autoreply.sieve" but the result is still same. Below is my config.
> Can you please advice where can be the problem?
>
https://git.dovecot.net/pigeonhole/core/-/blob/master/src/lib-sieve/sieve-limits.h#L18
That error is about the maximum length of a string literal. This is
currently hard-coded at 1Mb and thus not configurable. What are you
doing that you need such a big string value?
Regards,
Stephan.
> # 2.3.10.1 (a3d0e1171): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.10 (67bf5bd7)
> # OS: Linux 5.4.44-2-pve x86_64 Debian 10.4
> # Hostname: mail.xxx.xxx
> auth_cache_size = 2 M
> auth_cache_ttl = 5 mins
> auth_master_user_separator = *
> auth_mechanisms = plain login
> auth_policy_check_before_auth = no
> auth_policy_hash_nonce = # hidden, use -P to show it
> auth_policy_report_after_auth = no
> auth_policy_server_timeout_msecs = 1500
> auth_policy_server_url =http://127.0.0.1:8090/
> dict {
> acl = pgsql:/etc/dovecot/dovecot-dict-sql.conf.ext
> quota = pgsql:/etc/dovecot/dovecot-dict-sql.conf.ext
> }
> disable_plaintext_auth = no
> imap_client_workarounds = delay-newmail
> imap_id_log = *
> imap_id_retain = yes
> login_trusted_networks = 127.0.0.0/8
> mail_gid = 2000
> mail_home = /var/vmail/%d/%n
> mail_location = mdbox:~/mdbox:ALT=/var/vmail-archive/%d/%n/mdbox
> mail_max_userip_connections = 60
> mail_plugins = acl zlib fts quota
> 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 vacation-seconds editheader imapsieve vnd.dovecot.imapsieve
> mdbox_rotate_interval = 1 days
> mdbox_rotate_size = 16 M
> namespace {
> inbox = yes
> location =
> mailbox "Deleted Items" {
> auto = no
> special_use = \Trash
> }
> mailbox "Deleted Messages" {
> auto = no
> special_use = \Trash
> }
> mailbox Drafts {
> auto = no
> special_use = \Drafts
> }
> mailbox Junk {
> auto = subscribe
> special_use = \Junk
> }
> mailbox "Junk E-mail" {
> auto = no
> special_use = \Junk
> }
> mailbox Sent {
> auto = subscribe
> special_use = \Sent
> }
> mailbox "Sent Items" {
> auto = no
> special_use = \Sent
> }
> mailbox "Sent Messages" {
> auto = no
> special_use = \Sent
> }
> mailbox Spam {
> auto = no
> special_use = \Junk
> }
> mailbox Trash {
> special_use = \Trash
> }
> mailbox virtual/All {
> auto = no
> special_use = \All
> }
> prefix =
> separator = /
> type = private
> }
> namespace {
> inbox = no
> list = children
> location = mdbox:/var/vmail/%%d/%%n/mdbox:ALT=/var/vmail-archive/%%d/%%n/mdbox
> prefix = shared/%%u/
> separator = /
> subscriptions = no
> type = shared
> }
> passdb {
> args = /etc/dovecot/dovecot-ldap.conf
> driver = ldap
> }
> passdb {
> args = /etc/dovecot/masters.db
> driver = passwd-file
> master = yes
> pass = yes
> }
> plugin {
> acl = vfile
> acl_shared_dict = proxy::acl
> imapsieve_mailbox1_before =file:/var/vmail/sieve/report-spam.sieve
> imapsieve_mailbox1_causes = COPY
> imapsieve_mailbox1_name = Spam
> imapsieve_mailbox2_before =file:/var/vmail/sieve/report-ham.sieve
> imapsieve_mailbox2_causes = COPY
> imapsieve_mailbox2_from = Spam
> imapsieve_mailbox2_name = *
> imapsieve_mailbox3_before =file:/var/vmail/sieve/report-spam.sieve
> imapsieve_mailbox3_causes = COPY
> imapsieve_mailbox3_name = Junk
> imapsieve_mailbox4_before =file:/var/vmail/sieve/report-ham.sieve
> imapsieve_mailbox4_causes = COPY
> imapsieve_mailbox4_from = Junk
> imapsieve_mailbox4_name = *
> mailbox_alias_new = Sent Messages
> mailbox_alias_new2 = Sent Items
> mailbox_alias_new3 = Deleted Items
> mailbox_alias_old = Sent
> mailbox_alias_old2 = Sent
> mailbox_alias_old3 = Trash
> quota = dict:User quota::proxy::quota
> quota_grace = 10%%
> quota_rule2 = Trash:ignore
> quota_rule3 = Junk:ignore
> quota_warning = storage=80%% quota-warning 90 %u
> quota_warning2 = storage=85%% quota-warning 95 %u
> quota_warning3 = storage=95%% quota-warning 105 %u
> sieve = /var/vmail/%d/%n/sieve/.sieve
> sieve_after = /var/vmail/%d/%n/sieve/autoreply.sieve
> sieve_before = /var/vmail/sieve/global.sieve
> sieve_dir = /var/vmail/%d/%n/sieve
> sieve_extensions = +editheader +vacation-seconds
> sieve_global_dir = /var/vmail/sieve/
> sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
> sieve_max_redirects = 20
> sieve_max_script_size = 2M
> sieve_pipe_bin_dir = /usr/lib/dovecot
> sieve_plugins = sieve_imapsieve sieve_extprograms
> sieve_vacation_send_from_recipient = yes
> }
> protocols = imap sieve lmtp pop3
> service auth-worker {
> unix_listener auth-worker {
> user = vmail
> }
> user = $default_internal_user
> }
> service auth {
> unix_listener /var/spool/postfix/private/auth {
> group = postfix
> mode = 0660
> user = postfix
> }
> unix_listener auth-userdb {
> mode = 0600
> user = vmail
> }
> user = vmail
> }
> service dict {
> unix_listener dict {
> mode = 0600
> user = vmail
> }
> }
> service imap-login {
> process_min_avail = 10
> service_count = 0
> vsz_limit = 512 M
> }
> service imap {
> executable = imap
> process_limit = 3500
> unix_listener imap-master {
> user = $default_internal_user
> }
> vsz_limit = 2 G
> }
> service lmtp {
> unix_listener /var/spool/postfix/private/dovecot-lmtp {
> group = postfix
> mode = 0600
> user = postfix
> }
> }
> service managesieve-login {
> inet_listener sieve {
> port = 4190
> }
> process_min_avail = 0
> service_count = 1
> vsz_limit = 64 M
> }
> service managesieve {
> process_limit = 400
> }
> service pop3-login {
> process_min_avail = 3
> service_count = 0
> vsz_limit = 320 M
> }
> service pop3 {
> process_limit = 200
> vsz_limit = 320 M
> }
> service quota-warning {
> executable = script /etc/dovecot/quota_warning.sh
> unix_listener quota-warning {
> mode = 0666
> user = vmail
> }
> user = vmail
> }
> ssl_cert = </etc/ssl/private/multi.z-technics.cz.dovecot.pem
> ssl_dh = # hidden, use -P to show it
> ssl_key = # hidden, use -P to show it
> stats_writer_socket_path =
> userdb {
> args = /etc/dovecot/dovecot-ldap.conf
> driver = ldap
> }
> protocol sieve {
> managesieve_implementation_string = Dovecot Pigeonhole
> managesieve_max_compile_errors = 5
> }
> protocol imap {
> mail_plugins = quota imap_quota fts mailbox_alias imap_acl acl imap_zlib imap_sieve
> }
> protocol lda {
> mail_fsync = optimized
> }
> protocol lmtp {
> mail_fsync = optimized
> mail_plugins = quota sieve acl
> }
>
>
More information about the dovecot
mailing list