since moving/upgrading system I've noticed I no longer get sieve script compiled, there is no dovecot.svbin created in /var/vmail/vmail1/sbt.net.au/voytek@tld.au/sieve
what am I missing, how to check ?
also, looking at sieve.log, I see a lot of
May 31 06:32:50 lda(voytek@sbt.net.au)<1234><c4aVBfI98FzSBAAAyLbbsQ>: Error: sieve: Failed to initialize script execution: Invalid postmaster_address: invalid address `root' specified for the postmaster_address setting
# grep root dovecot.conf postmaster_address = root
what should I have ?
# dovecot --version 2.3.6 (7eab80676)
- Voytek Eymont via dovecot:
what am I missing, how to check ?
Try runing "sievec -u {your_linux_user} /path/to/whatever.sieve" from a shell and check the resulting error messages.
postmaster_address = root
Any fully qualified address (postmaster@yourdomain.com seems like a logical choice).
-Ralph
On Fri, May 31, 2019 10:18 am, Ralph Seichter via dovecot wrote:
- Voytek Eymont via dovecot:
Try runing "sievec -u {your_linux_user} /path/to/whatever.sieve" from a shell and check the resulting error messages.
Raplh, thanks
so, am I'm missing sql lookup for sieve...?
# sievec -u voytek dovecot.sieve sievec(voytek)<9667><>: Error: user voytek: Auth USER lookup failed sievec(root): Fatal: Internal error occurred. Refer to server log for more information.
# grep sievec /var/log/dovecot.log Jun 01 08:32:26 auth-worker(9621): Warning: sqlpool(mysql): Query failed, retrying: Unknown column 'mailbox.enablesievec' in 'where clause' Jun 01 08:32:26 auth-worker(9621): Error: sql(voytek): User query failed: Unknown column 'mailbox.enablesievec' in 'where clause'
# sievec -u voytek@sbt.net.au dovecot.sieve sievec(voytek@sbt.net.au)<9768><>: Error: user voytek@sbt.net.au: Auth USER lookup failed sievec(root): Fatal: Internal error occurred. Refer to server log for more information.
Jun 01 08:36:24 auth-worker(9769): Warning: sqlpool(mysql): Query failed, retrying: Unknown column 'mailbox.enablesievec' in 'where clause' Jun 01 08:36:24 auth-worker(9769): Error: sql(voytek@sbt.net.au): User query failed: Unknown column 'mailbox.enablesievec' in 'where clause'
from dovecot.conf:
# Virtual mail accounts. userdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } passdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql }
# grep sieve dovecot.conf protocols = pop3 imap sieve # Pigeonhole managesieve service. # Per-user sieve settings. sieve_dir = /%Lh/sieve sieve = /%Lh/sieve/dovecot.sieve # Global sieve settings. sieve_global_dir = /var/vmail/sieve sieve_global_path = /var/vmail/sieve/dovecot.sieve #sieve_before = #sieve_after = mail_plugins = $mail_plugins sieve log_path = /var/log/sieve.log
# cat dovecot-mysql.conf
driver = mysql
default_pass_scheme = CRYPT
connect = host=127.0.0.1 dbname=..... snip.......
# Required by 'doveadm mailbox ...'.
iterate_query = SELECT username AS user FROM mailbox
password_query = SELECT password FROM mailbox WHERE username='%u' AND
active='1'
user_query = SELECT
'%u' AS master_user,
CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/',
mailbox.maildir) AS home,
CONCAT('*:bytes=', mailbox.quota*1048576) AS quota_rule
FROM mailbox,domain
WHERE mailbox.username='%u'
AND mailbox.domain='%d'
AND mailbox.enable%Ls%Lc
=1
AND mailbox.domain=domain.domain
AND domain.backupmx=0
AND domain.active=1
AND mailbox.active=1
On Sat, June 1, 2019 8:47 am, Voytek Eymont via dovecot wrote:
I'm still not sure what/where am I missing...?
do I need some tables in the mailbox sql file ...?
or where is the extra 'c' from ?
"Unknown column 'mailbox.enablesievec'"
I currently have like in mailbox table:
...
enablelda | tinyint(1) | NO | MUL | 1
| |
| enablemanagesieve | tinyint(1) | NO | MUL | 1
| |
| enablemanagesievesecured | tinyint(1) | NO | MUL | 1
| |
| enablesieve | tinyint(1) | NO | MUL | 1
| |
| enablesievesecured | tinyint(1) | NO | MUL | 1
| |
| enableinternal | tinyint(1) | NO | MUL | 1
| |
...
On Fri, May 31, 2019 10:18 am, Ralph Seichter via dovecot wrote:
- Voytek Eymont via dovecot:
Try runing "sievec -u {your_linux_user} /path/to/whatever.sieve" from a shell and check the resulting error messages.
Raplh, thanks
so, am I'm missing sql lookup for sieve...?
# sievec -u voytek dovecot.sieve sievec(voytek)<9667><>: Error: user voytek: Auth USER lookup failed sievec(root): Fatal: Internal error occurred. Refer to server log for more information.
# grep sievec /var/log/dovecot.log Jun 01 08:32:26 auth-worker(9621): Warning: sqlpool(mysql): Query failed, retrying: Unknown column 'mailbox.enablesievec' in 'where clause' Jun 01 08:32:26 auth-worker(9621): Error: sql(voytek): User query failed: Unknown column 'mailbox.enablesievec' in 'where clause'
# sievec -u voytek@sbt.net.au dovecot.sieve sievec(voytek@sbt.net.au)<9768><>: Error: user voytek@sbt.net.au: Auth USER lookup failed sievec(root): Fatal: Internal error occurred. Refer to server log for more information.
Jun 01 08:36:24 auth-worker(9769): Warning: sqlpool(mysql): Query failed, retrying: Unknown column 'mailbox.enablesievec' in 'where clause' Jun 01 08:36:24 auth-worker(9769): Error: sql(voytek@sbt.net.au): User query failed: Unknown column 'mailbox.enablesievec' in 'where clause'
from dovecot.conf:
# Virtual mail accounts. userdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql } passdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql }
# grep sieve dovecot.conf protocols = pop3 imap sieve # Pigeonhole managesieve service. # Per-user sieve settings. sieve_dir = /%Lh/sieve sieve = /%Lh/sieve/dovecot.sieve # Global sieve settings. sieve_global_dir = /var/vmail/sieve sieve_global_path = /var/vmail/sieve/dovecot.sieve #sieve_before = #sieve_after = mail_plugins = $mail_plugins sieve log_path = /var/log/sieve.log
# cat dovecot-mysql.conf driver = mysql default_pass_scheme = CRYPT connect = host=127.0.0.1 dbname=..... snip....... # Required by 'doveadm mailbox ...'. iterate_query = SELECT username AS user FROM mailbox password_query = SELECT password FROM mailbox WHERE username='%u' AND active='1' user_query = SELECT \ '%u' AS master_user,
CONCAT(mailbox.storagebasedirectory, '/', mailbox.storagenode, '/', mailbox.maildir) AS home, \ CONCAT('*:bytes=', mailbox.quota*1048576) AS quota_rule \ FROM mailbox,domain
WHERE mailbox.username='%u'
AND mailbox.domain='%d'
AND mailbox.enable%Ls%Lc
=1
AND mailbox.domain=domain.domain
AND domain.backupmx=0
AND domain.active=1
AND mailbox.active=1
On Sun, June 9, 2019 4:30 pm, Voytek Eymont via dovecot wrote:
On Sat, June 1, 2019 8:47 am, Voytek Eymont via dovecot wrote:
I'm still not sure what/where am I missing...?
do I need some tables in the mailbox sql file ...?
or where is the extra 'c' from ?
"Unknown column 'mailbox.enablesievec'"
I currently have like in mailbox table:
... enablelda | tinyint(1) | NO | MUL | 1 | | | enablemanagesieve | tinyint(1) | NO | MUL | 1 | | | enablemanagesievesecured | tinyint(1) | NO | MUL | 1 | | | enablesieve | tinyint(1) | NO | MUL | 1 | | | enablesievesecured | tinyint(1) | NO | MUL | 1 | | | enableinternal | tinyint(1) | NO | MUL | 1 | | ...
do I need to rename above columns to add 'c' ...?
I've created a new column as
| enablesievec | tinyint(1) | NO | | NULL
| |
+--------------------------+-----------------+------+-----+---------------------+-------+
54 rows in set (0.00 sec)
and, now, no error
# sievec -u voytek@sbt.net.au dovecot.sieve #
did the naming convention change from sieve to sievec, is this my problem?
- Voytek Eymont via dovecot:
or where is the extra 'c' from ? "Unknown column 'mailbox.enablesievec'"
sievec is just Pigeonhole's Sieve script compiler. Try "man sievec" in a shell. I suggested you use it because sievec would report possible errors in your sieve scripts.
I use script files without any SQL database involved; perhaps somebody else can help you troubleshoot that aspect.
-Ralph
participants (2)
-
Ralph Seichter
-
Voytek Eymont