sieve_max_script_size is ignored
Stephan Bosch
stephan at rename-it.nl
Wed Aug 19 18:03:13 EEST 2020
Op 19-8-2020 om 17:01 schreef Stephan Bosch:
>
>
> 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
>
Whoops. You can read that code here:
https://github.com/dovecot/pigeonhole/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