Error with sieve - affects all attempts to download mail
I have my test server working properly. I copied the new configuration over to the production mail server and anytime someone tries to connect to dovecot I get the following error logged:
Oct 24 09:59:17 mail dovecot[96435]: imap-login: Logged in: user=<doug>, method=PLAIN, rip=10.0.1.250, lip=10.0.1.230, mpid=96557, TLS, TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits), session=<dkrGA5le5jUKAAH6>, port=143 Oct 24 09:59:17 mail dovecot[96435]: imap(doug): Error: Couldn't load required plugin /usr/local/lib/dovecot/lib20_mail_log_plugin.so: Plugin notify must be loaded also (you must set: mail_plugins=$mail_plugins notify) (trying to load modules: sieve mail_log)
I have not been able to find anything different between the two systems. The test system just works, the production does not.
mail# doveconf
2.4.5 (0cbb641e3e): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 2.4.5 (742bb892)
OS: FreeBSD 15.1-RELEASE-p2 arm64 ufs
Hostname: mail
27 default setting changes since version 2.4.2
dovecot_config_version = 2.4.2 auth_mechanisms = plain cram-md5 base_dir = /var/run/home_mail/ dovecot_storage_version = 2.4.0 first_valid_gid = 0 imap_capability = SASL-IR LOGIN-REFERRALS ID ENABLE LITERAL+ STARTTLS LOGINDISABLED "AUTH=CRAM-MD5" lda_mailbox_autocreate = yes log_debug = category=mail login_log_format_elements = user=<%{user}> method=%{mechanism} rip=%{remote_ip} lip=%{local_ip} mpid=%{mail_pid} %{secured} %{ssl_security} session=<%{session}> port=%{local_port} mail_driver = maildir mail_gid = 2222 mail_home = /var/mail/home_mail/%{user | username} mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size from mail_log_prefix = %{protocol}(%{user})[%{remote_ip}]<%{session}>: mail_path = /var/mail/home_mail/%{user | username}/Maildir mail_temp_scan_interval = 0 mail_uid = 2222 postmaster_address = doug@sermon-archive.info protocols = imap syslog_facility = local1 verbose_proctitle = yes namespace inbox { inbox = yes mailbox Drafts { autoexpunge = 5 days special_use = "\\Drafts" } mailbox Junk { autoexpunge = 5 days special_use = "\\Junk" } mailbox Trash { autoexpunge = 50 days special_use = "\\Trash" } mailbox Sent { autoexpunge = 30 days special_use = "\\Sent" } mailbox "Sent Messages" { autoexpunge = 30 days special_use = "\\Sent" } } passdb passwd-file { auth_username_format = %{user | username} default_password_scheme = CRYPT driver = passwd-file passwd_file_path = /usr/local/etc/dovecot/users } userdb static { driver = static fields { allow_all_users = yes home = /var/mail/home_mail/{user|domain}/{user|username} } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } inet_listener imaps2 { port = 998 ssl = yes } } service auth { unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } ssl_server { cert_file = /www/certs/mail.pem dh_file = /usr/local/etc/dovecot/dh.pem key_file = # hidden, use -P to show it } protocol lda { mail_plugins { sieve = yes } } protocol imap { imap_metadata = yes mail_plugins { sieve = yes mail_log = yes } } protocol pop3 { mail_plugins { mail_log = yes notify = yes } } sieve_script personal { active_path = /var/mail/home_mail/%{user | username}/.dovecot.sieve driver = file path = /var/mail/home_mail/%{user | username}/sieve } mail_attribute { dict file { path = %{home}/Maildir/dovecot-attributes } }
-- Doug
You are not loading the notify plugin for the imap service (only the pop service).
On 10/24/2026 11:03 AM MDT Doug Hardie via dovecot <dovecot@dovecot.org> wrote:
I have my test server working properly. I copied the new configuration over to the production mail server and anytime someone tries to connect to dovecot I get the following error logged:
Oct 24 09:59:17 mail dovecot[96435]: imap-login: Logged in: user=<doug>, method=PLAIN, rip=10.0.1.250, lip=10.0.1.230, mpid=96557, TLS, TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits), session=<dkrGA5le5jUKAAH6>, port=143 Oct 24 09:59:17 mail dovecot[96435]: imap(doug): Error: Couldn't load required plugin /usr/local/lib/dovecot/lib20_mail_log_plugin.so: Plugin notify must be loaded also (you must set: mail_plugins=$mail_plugins notify) (trying to load modules: sieve mail_log)
I have not been able to find anything different between the two systems. The test system just works, the production does not.
mail# doveconf
2.4.5 (0cbb641e3e): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 2.4.5 (742bb892)
OS: FreeBSD 15.1-RELEASE-p2 arm64 ufs
Hostname: mail
27 default setting changes since version 2.4.2
dovecot_config_version = 2.4.2 auth_mechanisms = plain cram-md5 base_dir = /var/run/home_mail/ dovecot_storage_version = 2.4.0 first_valid_gid = 0 imap_capability = SASL-IR LOGIN-REFERRALS ID ENABLE LITERAL+ STARTTLS LOGINDISABLED "AUTH=CRAM-MD5" lda_mailbox_autocreate = yes log_debug = category=mail login_log_format_elements = user=<%{user}> method=%{mechanism} rip=%{remote_ip} lip=%{local_ip} mpid=%{mail_pid} %{secured} %{ssl_security} session=<%{session}> port=%{local_port} mail_driver = maildir mail_gid = 2222 mail_home = /var/mail/home_mail/%{user | username} mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size from mail_log_prefix = %{protocol}(%{user})[%{remote_ip}]<%{session}>: mail_path = /var/mail/home_mail/%{user | username}/Maildir mail_temp_scan_interval = 0 mail_uid = 2222 postmaster_address = doug@sermon-archive.info protocols = imap syslog_facility = local1 verbose_proctitle = yes namespace inbox { inbox = yes mailbox Drafts { autoexpunge = 5 days special_use = "\\Drafts" } mailbox Junk { autoexpunge = 5 days special_use = "\\Junk" } mailbox Trash { autoexpunge = 50 days special_use = "\\Trash" } mailbox Sent { autoexpunge = 30 days special_use = "\\Sent" } mailbox "Sent Messages" { autoexpunge = 30 days special_use = "\\Sent" } } passdb passwd-file { auth_username_format = %{user | username} default_password_scheme = CRYPT driver = passwd-file passwd_file_path = /usr/local/etc/dovecot/users } userdb static { driver = static fields { allow_all_users = yes home = /var/mail/home_mail/{user|domain}/{user|username} } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } inet_listener imaps2 { port = 998 ssl = yes } } service auth { unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } ssl_server { cert_file = /www/certs/mail.pem dh_file = /usr/local/etc/dovecot/dh.pem key_file = # hidden, use -P to show it } protocol lda { mail_plugins { sieve = yes } } protocol imap { imap_metadata = yes mail_plugins { sieve = yes mail_log = yes } } protocol pop3 { mail_plugins { mail_log = yes notify = yes } } sieve_script personal { active_path = /var/mail/home_mail/%{user | username}/.dovecot.sieve driver = file path = /var/mail/home_mail/%{user | username}/sieve } mail_attribute { dict file { path = %{home}/Maildir/dovecot-attributes } }
-- Doug
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
Thanks. That fixed it. Is there anywhere that lists what the various plugins do and which can be included in each section?
-- Doug
On Oct 24, 2026, at 12:54, Michael Slusarz via dovecot <dovecot@dovecot.org> wrote:
You are not loading the notify plugin for the imap service (only the pop service).
On 10/24/2026 11:03 AM MDT Doug Hardie via dovecot <dovecot@dovecot.org> wrote:
I have my test server working properly. I copied the new configuration over to the production mail server and anytime someone tries to connect to dovecot I get the following error logged:
Oct 24 09:59:17 mail dovecot[96435]: imap-login: Logged in: user=<doug>, method=PLAIN, rip=10.0.1.250, lip=10.0.1.230, mpid=96557, TLS, TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits), session=<dkrGA5le5jUKAAH6>, port=143 Oct 24 09:59:17 mail dovecot[96435]: imap(doug): Error: Couldn't load required plugin /usr/local/lib/dovecot/lib20_mail_log_plugin.so: Plugin notify must be loaded also (you must set: mail_plugins=$mail_plugins notify) (trying to load modules: sieve mail_log)
I have not been able to find anything different between the two systems. The test system just works, the production does not.
mail# doveconf
2.4.5 (0cbb641e3e): /usr/local/etc/dovecot/dovecot.conf
Pigeonhole version 2.4.5 (742bb892)
OS: FreeBSD 15.1-RELEASE-p2 arm64 ufs
Hostname: mail
27 default setting changes since version 2.4.2
dovecot_config_version = 2.4.2 auth_mechanisms = plain cram-md5 base_dir = /var/run/home_mail/ dovecot_storage_version = 2.4.0 first_valid_gid = 0 imap_capability = SASL-IR LOGIN-REFERRALS ID ENABLE LITERAL+ STARTTLS LOGINDISABLED "AUTH=CRAM-MD5" lda_mailbox_autocreate = yes log_debug = category=mail login_log_format_elements = user=<%{user}> method=%{mechanism} rip=%{remote_ip} lip=%{local_ip} mpid=%{mail_pid} %{secured} %{ssl_security} session=<%{session}> port=%{local_port} mail_driver = maildir mail_gid = 2222 mail_home = /var/mail/home_mail/%{user | username} mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size from mail_log_prefix = %{protocol}(%{user})[%{remote_ip}]<%{session}>: mail_path = /var/mail/home_mail/%{user | username}/Maildir mail_temp_scan_interval = 0 mail_uid = 2222 postmaster_address = doug@sermon-archive.info protocols = imap syslog_facility = local1 verbose_proctitle = yes namespace inbox { inbox = yes mailbox Drafts { autoexpunge = 5 days special_use = "\\Drafts" } mailbox Junk { autoexpunge = 5 days special_use = "\\Junk" } mailbox Trash { autoexpunge = 50 days special_use = "\\Trash" } mailbox Sent { autoexpunge = 30 days special_use = "\\Sent" } mailbox "Sent Messages" { autoexpunge = 30 days special_use = "\\Sent" } } passdb passwd-file { auth_username_format = %{user | username} default_password_scheme = CRYPT driver = passwd-file passwd_file_path = /usr/local/etc/dovecot/users } userdb static { driver = static fields { allow_all_users = yes home = /var/mail/home_mail/{user|domain}/{user|username} } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } inet_listener imaps2 { port = 998 ssl = yes } } service auth { unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } ssl_server { cert_file = /www/certs/mail.pem dh_file = /usr/local/etc/dovecot/dh.pem key_file = # hidden, use -P to show it } protocol lda { mail_plugins { sieve = yes } } protocol imap { imap_metadata = yes mail_plugins { sieve = yes mail_log = yes } } protocol pop3 { mail_plugins { mail_log = yes notify = yes } } sieve_script personal { active_path = /var/mail/home_mail/%{user | username}/.dovecot.sieve driver = file path = /var/mail/home_mail/%{user | username}/sieve } mail_attribute { dict file { path = %{home}/Maildir/dovecot-attributes } }
-- Doug
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
dovecot mailing list -- dovecot@dovecot.org To unsubscribe send an email to dovecot-leave@dovecot.org
participants (2)
-
Doug Hardie
-
Michael Slusarz