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? # 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/8d7ddcf1/attachment.html>
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 > } > >
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 >> } >> >> >
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>