sieve_max_script_size is ignored

Zdeněk Zámečník diego at dixy.cz
Wed Aug 19 19:25:42 EEST 2020


That's what I was afraid of. Some users are trying to set up vacation 
message with inline picture. I am aware it's not ideal but in some cases 
it's needed.
It would be nice if this configuration option works in the future.

Regards,

Zdenek


On 8/19/20 5:01 PM, Stephan Bosch wrote:
>
>
> 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
>> }
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://dovecot.org/pipermail/dovecot/attachments/20200819/ff1230d8/attachment-0001.html>


More information about the dovecot mailing list