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

Reply via email to