sieve_max_script_size is ignored
Stephan Bosch
stephan at rename-it.nl
Sun Sep 6 22:35:24 EEST 2020
On 19/08/2020 18:25, Zdeněk Zámečník wrote:
>
> 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.
>
Submitted feature request; tracked as DOP-2012.
Regards,
Stephan.
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
>>> }
>>>
>>>
>>
More information about the dovecot
mailing list