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.