Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: sieve: dict storage: script `default': Script `default' not found at path priv/sieve/name/default
Aki > On 23/07/2024 13:52 EEST Adam Miller via dovecot <dovecot@dovecot.org> wrote: > > > Yes, that is where I got the error from. Here’s more from the log file: > > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: Pigeonhole version 0.5.16 (09c29328) initializing > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: include: sieve_global is not set; it is currently not possible to > include `:global’ scripts. > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: Sieve imapsieve plugin for Pigeonhole version 0.5.16 (09c29328) > loaded > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: Sieve Extprograms plugin for Pigeonhole version 0.5.16 (09c29328) > loaded > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: dict storage: user=redacted, uri=proxy::sieve > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: dict storage: script `default': Script `default' not found at > path priv/sieve/name/default > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: User has no active script in storage > `dict:proxy::sieve;user=redacted’ > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: User has no personal script > Jul 23 10:34:40 lmtp(redacted)<228576><CM1ZFUCHn2bgfAMAwHdlHA>: Debug: > sieve: No scripts to execute: reverting to default delivery. > > Is there something specific I should be looking for? > > Thank you! > > ------ Original Message ------ > From "Aki Tuomi via dovecot" <dovecot@dovecot.org> > To "Adam Miller" <a...@ardaemail.com>; "Adam Miller via dovecot" > <dovecot@dovecot.org> > Date 7/23/2024 3:35:17 AM > Subject Re: Sieve Filters with MySQL > > >Did you try with > > > >mail_debug=yes > > > >and > > > >log_debug=category=sieve > > > >Aki > > > >> On 23/07/2024 13:18 EEST Adam Miller via dovecot <dovecot@dovecot.org> > >> wrote: > >> > >> > >> Me again! I am trying to get sieve filters working with a MySQL backend > >> but same to be coming up short. Right now, the error I am getting > >> received is: > >> > >> > >> ------------------------------------------------------------------------------------------------------------------ > >> > >> "User has no active script in storage > >> dict:proxy::sieve;user=usern...@domain.com" > >> > >> > >> ------------------------------------------------------------------------------------------------------------------ > >> > >> The “usern...@domain.com” is obviously the email address of the > >> receiving mailbox. > >> > >> Here’s my latest config: > >> > >> # 2.3.16 (7e2e900c1a): /etc/dovecot/dovecot.conf > >> # Pigeonhole version 0.5.16 (09c29328) > >> # OS: Linux 6.5.0-1020-aws x86_64 Ubuntu 22.04.4 LTS nfs4 > >> # Hostname: ec2-us-east-1a-arda-mail-001.ardaemail.com > >> auth_debug = yes > >> auth_mechanisms = plain login > >> auth_verbose = yes > >> auth_worker_max_count = 5 > >> base_dir = /var/run/dovecot > >> debug_log_path = /var/log/dovecot/debug.log > >> default_internal_group = ardaemail > >> default_internal_user = ardaemail > >> dict { > >> quota = mysql:/etc/dovecot/inc.d/inc.quota.user.sql.conf > >> sieve = mysql:/etc/dovecot/inc.d/inc.sieve.sql.conf > >> sql = mysql:/etc/dovecot/inc.d/inc.lastlogin.sql.conf > >> } > >> hostname = = mail.ardaemail.com > >> info_log_path = /var/log/dovecot/info.log > >> instance_name = ec2-us-east-1a-arda-mail-001.ardaemail.com > >> listen = 172.16.0.200 > >> log_path = /var/log/dovecot/general.log > >> login_greeting = Welcome to ArdaEmail > >> mail_debug = yes > >> mail_gid = ardaemail > >> mail_location = maildir:/mnt/mail/%d/%n > >> mail_max_userip_connections = 1000 > >> mail_plugins = " quota mailbox_alias" > >> mail_server_admin = mailto:supp...@ardaemail.com > >> mail_uid = ardaemail > >> maildir_stat_dirs = yes > >> namespace inbox { > >> inbox = yes > >> location = > >> mailbox Archive { > >> auto = subscribe > >> special_use = \Archive > >> } > >> mailbox Drafts { > >> auto = subscribe > >> special_use = \Drafts > >> } > >> mailbox Junk { > >> auto = subscribe > >> autoexpunge = 90 days > >> special_use = \Junk > >> } > >> mailbox Sent { > >> auto = subscribe > >> special_use = \Sent > >> } > >> mailbox Trash { > >> auto = subscribe > >> autoexpunge = 30 days > >> special_use = \Trash > >> } > >> prefix = > >> } > >> passdb { > >> args = /etc/dovecot/inc.d/inc.sql.conf > >> driver = sql > >> } > >> plugin { > >> last_login_dict = proxy::sql > >> last_login_key = # hidden, use -P to show it > >> last_login_precision = ms > >> mailbox_alias_new = Junk Email > >> mailbox_alias_new2 = Junk E-mail > >> mailbox_alias_new3 = Sent Messages > >> mailbox_alias_new4 = Sent Items > >> mailbox_alias_new5 = Deleted Items > >> mailbox_alias_new6 = Junk Mail > >> mailbox_alias_old = Junk > >> mailbox_alias_old2 = Junk > >> mailbox_alias_old3 = Sent > >> mailbox_alias_old4 = Sent > >> mailbox_alias_old5 = Trash > >> mailbox_alias_old6 = Junk > >> quota = dict:User Quota::proxy::quota > >> quota_exceeded_message = Mailbox is full and cannot receive any more > >> emails > >> quota_status_nouser = DUNNO > >> quota_status_success = DUNNO > >> quota_warning = bytes=95%% quota-warning 95 %u > >> quota_warning2 = bytes=85%% quota-warning 85 %u > >> quota_warning3 = bytes=75%% quota-warning 75 %u > >> sieve = dict:proxy::sieve > >> sieve_plugins = sieve_imapsieve sieve_extprograms > >> } > >> postmaster_address = postmas...@ardaemail.com > >> protocols = imap lmtp > >> service auth-worker { > >> group = ardaemail > >> user = ardaemail > >> } > >> service auth { > >> group = ardaemail > >> unix_listener /var/spool/postfix/private/auth { > >> group = postfix > >> mode = 0666 > >> user = postfix > >> } > >> unix_listener auth-userdb { > >> group = ardaemail > >> mode = 0666 > >> user = ardaemail > >> } > >> user = ardaemail > >> } > >> service imap-login { > >> inet_listener imap { > >> port = 0 > >> } > >> inet_listener imaps { > >> port = 993 > >> ssl = yes > >> } > >> process_min_avail = 8 > >> service_count = 0 > >> } > >> service imap { > >> vsz_limit = 4 G > >> } > >> service lmtp { > >> unix_listener /var/spool/postfix/private/dovecot-lmtp { > >> group = postfix > >> mode = 0666 > >> user = postfix > >> } > >> } > >> service pop3-login { > >> inet_listener pop3 { > >> port = 0 > >> } > >> inet_listener pop3s { > >> port = 0 > >> } > >> } > >> service quota-status { > >> executable = /usr/lib/dovecot/quota-status -p postfix > >> unix_listener /var/spool/postfix/private/quota-status { > >> user = postfix > >> } > >> } > >> service quota-warning { > >> executable = script /etc/dovecot/bin/quota-warning.sh > >> unix_listener quota-warning { > >> group = ardaemail > >> mode = 0666 > >> user = ardaemail > >> } > >> } > >> service submission-login { > >> inet_listener submission { > >> port = 0 > >> } > >> } > >> ssl = required > >> ssl_cert = </etc/letsencrypt/live/mail.ardaemail.com/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 > >> ssl_prefer_server_ciphers = yes > >> userdb { > >> args = /etc/dovecot/inc.d/inc.sql.conf > >> driver = sql > >> } > >> protocol imap { > >> imap_metadata = yes > >> mail_plugins = " quota mailbox_alias imap_sieve imap_quota last_login" > >> } > >> protocol lmtp { > >> mail_plugins = " quota mailbox_alias sieve” > >> } > >> > >> This output clearly does not include my Sieve configuration maps so > >> here’s those: > >> > >> connect = host=redacted dbname=redacted user=redacted password=redacted > >> > >> map { > >> pattern = priv/sieve/name/$script_name > >> table = mailboxFilter > >> username_field = email > >> value_field = uuid > >> fields { > >> name = $script_name > >> } > >> } > >> > >> map { > >> pattern = priv/sieve/data/$uuid > >> table = mailboxFilter > >> username_field = email > >> value_field = filter > >> fields { > >> uuid = $uuid > >> } > >> } > >> > >> And here’s the table schema: > >> > >> CREATE TABLE `mailboxFilter` ( > >> `id` int(11) unsigned NOT NULL AUTO_INCREMENT, > >> `uuid` varchar(36) NOT NULL, > >> `email` varchar(192) NOT NULL, > >> `name` varchar(255) NOT NULL, > >> `filter` longtext NOT NULL, > >> `isActive` bit(1) NOT NULL DEFAULT b’1’, > >> `createdAt` datetime NOT NULL DEFAULT current_timestamp(), > >> `updatedAt` datetime NOT NULL DEFAULT current_timestamp() ON UPDATE > >> current_timestamp(), > >> PRIMARY KEY (`id`), > >> UNIQUE KEY `UUID` (`uuid`), > >> UNIQUE KEY `EMAIL` (`email`) > >> ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 > >> COLLATE=utf8mb4_general_ci; > >> > >> When I run manually queries, everything works fine though I am not > >> entirely sure what the queries are that Dovecot is executing. > >> > >> Any help is appreciated! Also, if I could use the “isActive” field, that > >> would be great as well. My plan to start here is to only have one record > >> in the table per mailbox which would contain all Sieve filters. > >> Eventually, it would be nice if I could adjust the configuration to > >> allow for more than one that returns concatenated so any help there > >> would be great as well! > >> > >> Thank you! > >> _______________________________________________ > >> dovecot mailing list -- dovecot@dovecot.org > >> To unsubscribe send an email to dovecot-le...@dovecot.org > >_______________________________________________ > >dovecot mailing list -- dovecot@dovecot.org > >To unsubscribe send an email to dovecot-le...@dovecot.org > _______________________________________________ > dovecot mailing list -- dovecot@dovecot.org > To unsubscribe send an email to dovecot-le...@dovecot.org _______________________________________________ dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-le...@dovecot.org