You can try doveadm dict get -u adam proxy::sieve priv/sieve/name/default
this should return id of the default script. doveadm dict get -u adam proxy::sieve priv/sieve/data/<id> should return the actual script. See https://doc.dovecot.org/configuration_manual/sieve/dict/ Aki > On 23/07/2024 14:09 EEST Adam Miller via dovecot <dovecot@dovecot.org> wrote: > > > Yes, I get that. What I would like to know is what are the queries that > Dovecot / Sieve is executing so that I can better determine where the > issue exists? Is there anyway to see them? Do you see an issue anywhere > in my configuration files? > > Thank you. > > > ------ Original Message ------ > From "Aki Tuomi" <aki.tu...@open-xchange.com> > To "Adam Miller" <a...@ardaemail.com>; "Adam Miller via dovecot" > <dovecot@dovecot.org> > Date 7/23/2024 4:07:22 AM > Subject Re: Re[2]: Sieve Filters with MySQL > > >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 _______________________________________________ dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-le...@dovecot.org