Hello good people,
I have dovecot- 2.3.7.2 (Ubuntu Ubuntu 20.04.1 LTS) running fine.
However, I have a hitch with mail filtering.
Using SOGo as the webmail UI, I created a filter rule which resulted into
the rule below:
require ["fileinto"];
if allof (address :contains "from" "odhiambo") {
fileinto "INBOX/Odhiambo";
}
However, the test mail I sent did not end up the folder expected.
lda.log contains this info:
Oct 30 07:39:07 lda(wash at
mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: Info:
sieve: msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_o8UnvR152x54Q at
mail.gmail.com>: stored mail into mailbox 'INBOX'
Oct 30 07:39:07 lda(wash at
mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: Info:
sieve: Execution of script /var/spool/virtual/mydomain/wash/.dovecot.sieve
failed, but implicit keep was successful (user logfile
/var/spool/virtual/mydomain/wash/.dovecot.sieve.log may reveal additional
details)
And the .dovecot.sieve.log contains:
sieve: info: started log at Oct 30 07:39:07.
error: msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_o8UnvR152x54Q at
mail.gmail.com>: failed to store into mailbox
'INBOX/Odhiambo': *Invalid mailbox name: Name must not have '/'
characters.*
What might be the problem here??
dovecot -n output is below:
# 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.7.2 ()
# OS: Linux 5.4.0-29-generic x86_64 Ubuntu 20.04.1 LTS ext4
# Hostname: jp.mydomain
auth_mechanisms = plain login
auth_socket_path = /var/run/dovecot/auth-userdb
debug_log_path = /var/log/dovecot/debug.log
default_login_user = dovecot
default_vsz_limit = 2 G
disable_plaintext_auth = no
first_valid_uid = 110
hostname = gw.mydomain
info_log_path = /var/log/dovecot/info.log
log_path = /var/log/dovecot/error.log
mail_gid = Debian-exim
mail_location
maildir:/var/spool/virtual/%d/%n/Maildir:INDEX=/var/spool/virtual/indexes/%d/%1n/%n
mail_plugins = fts
mail_privileged_group = mail
mail_server_admin = postmaster at mydomain
mail_uid = Debian-exim
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 imapsieve vnd.dovecot.imapsieve
namespace inbox {
inbox = yes
location mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix }
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts_autoindex_exclude3 = \Drafts
fts_autoindex_exclude4 = \Spam
fts_enforced = yes
imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_name = Spam
imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_from = Spam
imapsieve_mailbox2_name = *
plugin = fts managesieve sieve
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute
sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter
sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
sieve_plugins = sieve_imapsieve sieve_extprograms
}
postmaster_address = postmaster at mydomain
protocols = imap lmtp sieve
service auth {
unix_listener auth-client {
mode = 0600
user = Debian-exim
}
unix_listener auth-userdb {
group = Debian-exim
user = Debian-exim
}
}
service stats {
unix_listener stats-reader {
user = Debian-exim
}
unix_listener stats-writer {
user = Debian-exim
}
}
service submission-login {
inet_listener submission {
port = 2587
}
}
ssl_cert = </etc/letsencrypt/live/mydomain/fullchain.pem
ssl_client_ca_dir = /etc/ssl/certs
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
protocol lmtp {
info_log_path = /var/log/dovecot/lmtp.log
log_path = /var/log/dovecot/lmtp-errors.log
mail_plugins = fts sieve
postmaster_address = postmaster at mydomain
}
protocol lda {
info_log_path = /var/log/dovecot/lda.log
log_path = /var/log/dovecot/lda-errors.log
mail_plugins = fts sieve
}
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254 7 3200 0004/+254 7 2274 3223
"Oh, the cruft.", grep ^[^#] :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<https://dovecot.org/pipermail/dovecot/attachments/20201030/4bd40523/attachment.html>
Answering to myself, The issue was as a result of a config parameter for SOGo: Changed NGImap4ConnectionStringSeparator = "/"; to NGImap4ConnectionStringSeparator = "."; and the problem is solved. On Fri, 30 Oct 2020 at 11:43, Odhiambo Washington <odhiambo at gmail.com> wrote:> Hello good people, > > I have dovecot- 2.3.7.2 (Ubuntu Ubuntu 20.04.1 LTS) running fine. > However, I have a hitch with mail filtering. > > Using SOGo as the webmail UI, I created a filter rule which resulted into > the rule below: > > require ["fileinto"]; > if allof (address :contains "from" "odhiambo") { > fileinto "INBOX/Odhiambo"; > } > > However, the test mail I sent did not end up the folder expected. > > lda.log contains this info: > Oct 30 07:39:07 lda(wash at mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: > Info: sieve: msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_> o8UnvR152x54Q at mail.gmail.com>: stored mail into mailbox 'INBOX' > Oct 30 07:39:07 lda(wash at mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: > Info: sieve: Execution of script > /var/spool/virtual/mydomain/wash/.dovecot.sieve failed, but implicit keep > was successful (user logfile > /var/spool/virtual/mydomain/wash/.dovecot.sieve.log may reveal additional > details) > > And the .dovecot.sieve.log contains: > sieve: info: started log at Oct 30 07:39:07. > error: msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_> o8UnvR152x54Q at mail.gmail.com>: failed to store into mailbox > 'INBOX/Odhiambo': *Invalid mailbox name: Name must not have '/' > characters.* > > What might be the problem here?? > > > dovecot -n output is below: > > # 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.5.7.2 () > # OS: Linux 5.4.0-29-generic x86_64 Ubuntu 20.04.1 LTS ext4 > # Hostname: jp.mydomain > auth_mechanisms = plain login > auth_socket_path = /var/run/dovecot/auth-userdb > debug_log_path = /var/log/dovecot/debug.log > default_login_user = dovecot > default_vsz_limit = 2 G > disable_plaintext_auth = no > first_valid_uid = 110 > hostname = gw.mydomain > info_log_path = /var/log/dovecot/info.log > log_path = /var/log/dovecot/error.log > mail_gid = Debian-exim > mail_location = maildir:/var/spool/virtual/%d/%n/Maildir:INDEX=/var/spool/virtual/indexes/%d/%1n/%n > mail_plugins = fts > mail_privileged_group = mail > mail_server_admin = postmaster at mydomain > mail_uid = Debian-exim > 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 imapsieve vnd.dovecot.imapsieve > namespace inbox { > inbox = yes > location > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix > } > passdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > fts_autoindex = yes > fts_autoindex_exclude = \Junk > fts_autoindex_exclude2 = \Trash > fts_autoindex_exclude3 = \Drafts > fts_autoindex_exclude4 = \Spam > fts_enforced = yes > imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_name = Spam > imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_from = Spam > imapsieve_mailbox2_name = * > plugin = fts managesieve sieve > sieve = file:~/sieve;active=~/.dovecot.sieve > sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute > sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment > sieve_pipe_bin_dir = /usr/lib/dovecot/sieve > sieve_plugins = sieve_imapsieve sieve_extprograms > } > postmaster_address = postmaster at mydomain > protocols = imap lmtp sieve > service auth { > unix_listener auth-client { > mode = 0600 > user = Debian-exim > } > unix_listener auth-userdb { > group = Debian-exim > user = Debian-exim > } > } > service stats { > unix_listener stats-reader { > user = Debian-exim > } > unix_listener stats-writer { > user = Debian-exim > } > } > service submission-login { > inet_listener submission { > port = 2587 > } > } > ssl_cert = </etc/letsencrypt/live/mydomain/fullchain.pem > ssl_client_ca_dir = /etc/ssl/certs > ssl_dh = # hidden, use -P to show it > ssl_key = # hidden, use -P to show it > userdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > protocol lmtp { > info_log_path = /var/log/dovecot/lmtp.log > log_path = /var/log/dovecot/lmtp-errors.log > mail_plugins = fts sieve > postmaster_address = postmaster at mydomain > } > protocol lda { > info_log_path = /var/log/dovecot/lda.log > log_path = /var/log/dovecot/lda-errors.log > mail_plugins = fts sieve > } > > > -- > Best regards, > Odhiambo WASHINGTON, > Nairobi,KE > +254 7 3200 0004/+254 7 2274 3223 > "Oh, the cruft.", grep ^[^#] :-) >-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 "Oh, the cruft.", grep ^[^#] :-) -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://dovecot.org/pipermail/dovecot/attachments/20201030/bf6d1af8/attachment-0001.html>
You might consider adding "stop;" after the fileinto, otherwise a second match might process the message again, moving it elsewhere, etc. Tom. On 10/30/2020 5:47 AM, Odhiambo Washington wrote:> > Answering to myself, > > The issue was as a result of a config parameter for SOGo: > > Changed > NGImap4ConnectionStringSeparator = "/"; > > to > > NGImap4ConnectionStringSeparator = "."; > > and the problem is solved. > > > On Fri, 30 Oct 2020 at 11:43, Odhiambo Washington <odhiambo at gmail.com > <mailto:odhiambo at gmail.com>> wrote: > > Hello good people, > > I have dovecot-?2.3.7.2 (Ubuntu??Ubuntu 20.04.1 LTS) running fine. > However, I have a hitch with mail filtering. > > Using SOGo as the webmail UI, I created a filter rule which resulted > into the rule below: > > require ["fileinto"]; > if allof (address :contains "from" "odhiambo") { > ? ? fileinto "INBOX/Odhiambo"; > } > > However, the test mail I sent did not end up the folder expected. > > lda.log contains this info: > Oct 30 07:39:07 lda(wash at mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: > Info: sieve: > msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_=o8UnvR152x54Q at mail.gmail.com > <mailto:o8UnvR152x54Q at mail.gmail.com>>: stored mail into mailbox 'INBOX' > Oct 30 07:39:07 lda(wash at mydomain)<2415266><tSKSHhvDm1+i2iQA9H6eMA>: > Info: sieve: Execution of script > /var/spool/virtual/mydomain/wash/.dovecot.sieve failed, but implicit > keep was successful (user logfile > /var/spool/virtual/mydomain/wash/.dovecot.sieve.log may reveal > additional details) > > And the?.dovecot.sieve.log contains: > sieve: info: started log at Oct 30 07:39:07. > error: > msgid=<CAAdA2WNqXpG1qmOmKp_pJPS6iQrEPeS6=vM_=o8UnvR152x54Q at mail.gmail.com > <mailto:o8UnvR152x54Q at mail.gmail.com>>: failed to store into mailbox > 'INBOX/Odhiambo': *Invalid mailbox name: Name must not have '/' > characters.* > * > * > What might be the problem here?? > > > dovecot -n output is below: > > # 2.3.7.2 (3c910f64b): /etc/dovecot/dovecot.conf > # Pigeonhole version 0.5.7.2 () > # OS: Linux 5.4.0-29-generic x86_64 Ubuntu 20.04.1 LTS ext4 > # Hostname: jp.mydomain > auth_mechanisms = plain login > auth_socket_path = /var/run/dovecot/auth-userdb > debug_log_path = /var/log/dovecot/debug.log > default_login_user = dovecot > default_vsz_limit = 2 G > disable_plaintext_auth = no > first_valid_uid = 110 > hostname = gw.mydomain > info_log_path = /var/log/dovecot/info.log > log_path = /var/log/dovecot/error.log > mail_gid = Debian-exim > mail_location = maildir:/var/spool/virtual/%d/%n/Maildir:INDEX=/var/spool/virtual/indexes/%d/%1n/%n > mail_plugins = fts > mail_privileged_group = mail > mail_server_admin = postmaster at mydomain > mail_uid = Debian-exim > 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 imapsieve vnd.dovecot.imapsieve > namespace inbox { > inbox = yes > location > mailbox Drafts { > special_use = \Drafts > } > mailbox Junk { > special_use = \Junk > } > mailbox Sent { > special_use = \Sent > } > mailbox "Sent Messages" { > special_use = \Sent > } > mailbox Trash { > special_use = \Trash > } > prefix > } > passdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > fts_autoindex = yes > fts_autoindex_exclude = \Junk > fts_autoindex_exclude2 = \Trash > fts_autoindex_exclude3 = \Drafts > fts_autoindex_exclude4 = \Spam > fts_enforced = yes > imapsieve_mailbox1_before = file:/usr/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_name = Spam > imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_from = Spam > imapsieve_mailbox2_name = * > plugin = fts managesieve sieve > sieve = file:~/sieve;active=~/.dovecot.sieve > sieve_execute_bin_dir = /usr/lib/dovecot/sieve-execute > sieve_filter_bin_dir = /usr/lib/dovecot/sieve-filter > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment > sieve_pipe_bin_dir = /usr/lib/dovecot/sieve > sieve_plugins = sieve_imapsieve sieve_extprograms > } > postmaster_address = postmaster at mydomain > protocols = imap lmtp sieve > service auth { > unix_listener auth-client { > mode = 0600 > user = Debian-exim > } > unix_listener auth-userdb { > group = Debian-exim > user = Debian-exim > } > } > service stats { > unix_listener stats-reader { > user = Debian-exim > } > unix_listener stats-writer { > user = Debian-exim > } > } > service submission-login { > inet_listener submission { > port = 2587 > } > } > ssl_cert = </etc/letsencrypt/live/mydomain/fullchain.pem > ssl_client_ca_dir = /etc/ssl/certs > ssl_dh = # hidden, use -P to show it > ssl_key = # hidden, use -P to show it > userdb { > args = /etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > protocol lmtp { > info_log_path = /var/log/dovecot/lmtp.log > log_path = /var/log/dovecot/lmtp-errors.log > mail_plugins = fts sieve > postmaster_address = postmaster at mydomain > } > protocol lda { > info_log_path = /var/log/dovecot/lda.log > log_path = /var/log/dovecot/lda-errors.log > mail_plugins = fts sieve > } > > > -- > Best regards, > Odhiambo WASHINGTON, > Nairobi,KE > +254 7 3200 0004/+254 7 2274 3223 > "Oh, the cruft.", grep ^[^#] :-) > > > > -- > Best regards, > Odhiambo WASHINGTON, > Nairobi,KE > +254 7 3200 0004/+254 7 2274 3223 > "Oh, the cruft.", grep ^[^#] :-)