I figured it out. I needed the following in the passdb sql stanza: default_password_scheme = SHA512-CRYPT.
So, problem solved! The entire working dovecot.conf config is as follows:
*** REQUIRED *** Dovecot config and storage versions
dovecot_config_version = 2.4.2 dovecot_storage_version = 2.4.2
passdb sql { default_password_scheme = SHA512-CRYPT query = SELECT crypt as password FROM users WHERE username = '%{user}' AND (type = 'local' OR type = 'piped'); }
userdb sql { query = SELECT pop as home, uid, gid FROM users WHERE username = '%{user}'; } sql_driver = mysql mysql /var/run/mysqld/mysqld.sock { user = exim4u password = SECRET dbname = exim4u }
protocols { imap = yes pop3 = yes } protocol imap { mail_max_userip_connections = 50 } protocol pop3 { pop3_uidl_format = %{uid}%{uidvalidity} }
service auth { user = dovecot }
ssl = required ssl_server_cert_file = /etc/pki/tls/exim_tls/exim.cert ssl_server_key_file = /etc/pki/tls/exim_tls/exim.key ssl_server_dh_file = /etc/dovecot/dh.pem ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384