wuwei
2016-Apr-06 11:25 UTC
[help]enotify "mail to" run fine edit via managesieve 0.4.4 complied failed
hi all edit via vi editor to change dovecot.sieve and enotify works fine.but when I telnet 4190 port via managesieve to edit it with the same code,the managesieve said "NO "Error in MANAGESIEVE command CHECKSCRIPT: "", find many topic in wiki and maillist but not solved. need you help!thanks!!dovecot version 2.2.15,pigonhole version 0.4.4 here are more infos below: *managesieve cmds:* "IMPLEMENTATION" "Dovecot Pigeonhole" "SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave duplicate vacation-seconds" "NOTIFY" "mailto" "SASL" "PLAIN LOGIN" "VERSION" "1.0" OK "Dovecot ready." listscripts NO "Error in MANAGESIEVE command received by server." AUTHENTICATE "PLAIN" "AGFuZ196aGFAdG9tLmNvbQAxMTExMTE=" OK "Logged in." listscripts "blackwhitelist" "rulefilter" ACTIVE OK "Listscripts completed." getscript "rulefilter" {471} require ["reject","fileinto","imap4flags","vacation","regex","encoded-character","include","copy","enotify","variables"]; if header :matches "Subject" "*" { set "Subject" "${1}"; } if header :matches "From" "*" { set "From" "${1}"; } if header :matches "Message-ID" "*" { set "msg_id" "${1}"; } if header :matches "To" "*" { set "To" "${1}"; } if header :matches "Date" "*" { set "Date" "${1}"; } notify "mailto:wuweiwwd at tom.com"; OK "Getscript completed." checkscript {471} require ["reject","fileinto","imap4flags","vacation","regex","encoded-character","include","copy","enotify","variables"]; if header :matches "Subject" "*" { set "Subject" "${1}"; } if header :matches "From" "*" { set "From" "${1}"; } if header :matches "Message-ID" "*" { set "msg_id" "${1}"; } if header :matches "To" "*" { set "To" "${1}"; } if header :matches "Date" "*" { set "Date" "${1}"; } notify "mailto:wuweiwwd at tom.com"; *NO "Error in MANAGESIEVE command CHECKSCRIPT: "* BYE "Disconnected for inactivity" Connection closed by foreign host. *sieve code:* require ["reject","fileinto","imap4flags","vacation","regex","encoded-character","include","copy","enotify","variables"]; if header :matches "Subject" "*" { set "Subject" "${1}"; } if header :matches "From" "*" { set "From" "${1}"; } if header :matches "Message-ID" "*" { set "msg_id" "${1}"; } if header :matches "To" "*" { set "To" "${1}"; } if header :matches "Date" "*" { set "Date" "${1}"; } notify "mailto:wuweiwwd at tom.com"; *dovecot.conf ./dovecot -n* # 2.2.15: /home/mail/dovecot/etc/dovecot/dovecot.conf doveconf: Warning: service auth { client_limit=80960 } is lower than required under max. load (300000) doveconf: Warning: service anvil { client_limit=60000 } is lower than required under max. load (240003) # OS: Linux 3.2.0-4-amd64 x86_64 Debian 7.2 auth_cache_negative_ttl = 1 days auth_cache_size = 1000 k auth_cache_ttl = 1 days auth_debug = yes auth_debug_passwords = yes auth_master_user_separator = * auth_mechanisms = plain login debug_log_path = /home/mail/dovecot/logs/dovecot.log default_client_limit = 60000 default_internal_user = vmail default_login_user = dovecotauth default_process_limit = 60000 disable_plaintext_auth = no first_valid_gid = 1007 first_valid_uid = 1007 imapc_features = rfc822.size fetch-headers imapc_host = 172.24.173.212 imapc_password = tom123VipIMAP587 imapc_user = %u info_log_path = /home/mail/dovecot/logs/dovecot.log log_path = /home/mail/dovecot/logs/dovecot.log mail_debug = yes mail_fsync = never mail_plugins = fts fts_lucene mail_log notify quota zlib mail_prefetch_count = 20 maildir_very_dirty_syncs = yes 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 ihave duplicate vacation-seconds namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox "Junk E-mail" { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix = separator = . } passdb { args = /home/mail/dovecot/etc/dovecot/passwd.masterusers driver = passwd-file master = yes } passdb { args = /home/mail/dovecot/bin/CheckPassword driver = checkpassword } plugin { fts = lucene fts_lucene = whitespace_chars=@. mail_debug = yes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename append mail_log_fields = uid box msgid size quota = dict:%u::redis:host=127.0.0.1:prefix=user_quota/ quota_rule2 = Trash:storage=+80%% quota_warning = storage=90%% quota-warning 90 %u quota_warning2 = storage=80%% quota-warning 80 %u quota_warning3 = storage=70%% quota-warning 70 %u quota_warning4 = storage=60%% quota-warning 60 %u sieve = ~/sieve/.dovecot.sieve sieve_dir = ~/sieve sieve_extensions = +vacation-seconds sieve_max_redirects = 10 sieve_redirect_envelope_from = orig_recipient sieve_vacation_default_period = 0 sieve_vacation_max_period = 0 sieve_vacation_min_period = 0 welcome_letter_path = /home/mail/dovecot/etc/welcome welcome_letter_url = http://202.108.252.162:8080/domainmail zlib_save = gz zlib_save_level = 6 } pop3_fast_size_lookups = yes pop3_no_flag_updates = yes postmaster_address = postmastar@%d protocols = imap pop3 sieve lmtp service auth-worker { user = dovecotauth } service auth { client_limit = 80960 unix_listener /home/mail/postfix/var/spool/postfix/private/auth-client { group = postfix mode = 0660 user = postfix } } service imap-login { inet_listener imap { port = 143 } service_count = 0 vsz_limit = 256 M } service imap { executable = imap postlogin process_limit = 60240 } service lmtp { inet_listener { port = 11000 } } service managesieve-login { inet_listener sieve { port = 4190 } service_count = 0 vsz_limit = 256 M } service managesieve { process_limit = 80960 } service pop { executable = imap postlogin process_limit = 60240 } service pop3-login { inet_listener pop3 { port = 110 } service_count = 0 vsz_limit = 256 M } service postlogin { executable = script-login -d rawlog -b -t } service quota-warning { executable = script /home/mail/dovecot/bin/quota-warning.sh unix_listener quota-warning { user = vmail } user = vmail } ssl = no submission_host = 172.24.140.52:26 userdb { driver = prefetch } userdb { args = /home/mail/dovecot/etc/dovecot/dovecot-dict-auth.conf.ext driver = dict } protocol imap { imap_logout_format = bytes=%i/%o mail_plugins = fts fts_lucene mail_log notify quota zlib imap_quota imap_zlib } protocol pop3 { pop3_logout_format = bytes=%i/%o, top=%t/%p, retr=%r/%b, del=%d/%m, size=%s } protocol lmtp { mail_plugins = fts fts_lucene mail_log notify quota zlib quota sieve } protocol sieve { mail_max_userip_connections = 1000 mail_plugins = fts fts_lucene mail_log notify quota zlib quota managesieve_implementation_string = Dovecot Pigeonhole managesieve_logout_format = bytes=%i/%o managesieve_max_compile_errors = 10 managesieve_max_line_length = 65536 } -- View this message in context: http://dovecot.2317879.n4.nabble.com/help-enotify-mail-to-run-fine-edit-via-managesieve-0-4-4-complied-failed-tp55752.html Sent from the Dovecot mailing list archive at Nabble.com.
Stephan Bosch
2016-Apr-06 22:02 UTC
[help]enotify "mail to" run fine edit via managesieve 0.4.4 complied failed
Op 4/6/2016 om 1:25 PM schreef wuwei:> hi all > edit via vi editor to change dovecot.sieve and enotify works fine.but > when I telnet 4190 port via managesieve to edit it with the same code,the > managesieve said "NO "Error in MANAGESIEVE command CHECKSCRIPT: "", find > many topic in wiki and maillist but not solved. > need you help!thanks!!dovecot version 2.2.15,pigonhole version 0.4.4 > here are more infos below: > *managesieve cmds:* > "IMPLEMENTATION" "Dovecot Pigeonhole" > "SIEVE" "fileinto reject envelope encoded-character vacation subaddress > comparator-i;ascii-numeric relational regex imap4flags copy include > variables body enotify environment mailbox date ihave duplicate > vacation-seconds" > "NOTIFY" "mailto" > "SASL" "PLAIN LOGIN" > "VERSION" "1.0" > OK "Dovecot ready." > listscripts > NO "Error in MANAGESIEVE command received by server." > AUTHENTICATE "PLAIN" "AGFuZ196aGFAdG9tLmNvbQAxMTExMTE=" > OK "Logged in." > listscripts > "blackwhitelist" > "rulefilter" ACTIVE > OK "Listscripts completed." > getscript "rulefilter" > {471} > require > ["reject","fileinto","imap4flags","vacation","regex","encoded-character","include","copy","enotify","variables"]; > if header :matches "Subject" "*" { > set "Subject" "${1}"; > } > if header :matches "From" "*" { > set "From" "${1}"; > } > if header :matches "Message-ID" "*" { > set "msg_id" "${1}"; > } > if header :matches "To" "*" { > set "To" "${1}"; > } > if header :matches "Date" "*" { > set "Date" "${1}"; > } > notify "mailto:wuweiwwd at tom.com"; > > OK "Getscript completed." > checkscript {471} > require > ["reject","fileinto","imap4flags","vacation","regex","encoded-character","include","copy","enotify","variables"]; > if header :matches "Subject" "*" { > set "Subject" "${1}"; > } > if header :matches "From" "*" { > set "From" "${1}"; > } > if header :matches "Message-ID" "*" { > set "msg_id" "${1}"; > } > if header :matches "To" "*" { > set "To" "${1}"; > } > if header :matches "Date" "*" { > set "Date" "${1}"; > } > notify "mailto:wuweiwwd at tom.com"; > *NO "Error in MANAGESIEVE command CHECKSCRIPT: "* > BYE "Disconnected for inactivity" > Connection closed by foreign host.Copy-pasting in your terminal does not necessarily preserve TABs and newlines as-is. This means that the {471} bytes for the length of what you're pasting is probably not correct (in this case too low). The rest of the script is then interpreted as subsequent commands. causing obscure errors. I find it difficult to tell for sure how many bytes it will be. If you're just fooling around, you could try a byte count that is a little too high and bridge the gap with spaces and newlines; eventually it will be accepted. Why are you doing this anyway? If you upgrade to Pigeonhole v0.4.7+, you can manage scripts from command line using the "doveadm sieve" command. If that is not an option, there are a few command line ManageSieve clients available; e.g., "sieve-connect". Regards, Stephan.
wuwei
2016-Apr-07 04:28 UTC
[help]enotify "mail to" run fine edit via managesieve 0.4.4 complied failed
thanks a lot! now it works well.at first ,I copy other cmds, and it works.so I thought this error might be a configuration error. -- View this message in context: http://dovecot.2317879.n4.nabble.com/help-enotify-mail-to-run-fine-edit-via-managesieve-0-4-4-complied-failed-tp55752p55777.html Sent from the Dovecot mailing list archive at Nabble.com.