Good day to everyone
Currently, I'm trying to implement the sieve "vacation" plugin with the sieve "Extdata" plugin to lookup information from a MySQL remote server. I'm following the instructions in the documentation: https://wiki2.dovecot.org/Pigeonhole/Sieve/Plugins/Extdata
===== I have the following error ===
Apr 09 13:46:51 mail dovecot[5512]: dict: Error: Fatal error in defaults handling. Program aborted
Apr 09 13:46:51 mail dovecot[5512]: lmtp(usrx@themail.com)<5539><PNwlBJvorFyjFQAAYWwSRA:2>: Warning: sieve: before: line 18: extdata: failed to lookup value `reply_enabled': Connection closed (reply took 0.016 secs (0.017 in dict wait, 0.000 in other ioloops, 0.000 in locks, async-id reply 0.001 secs ago))
Apr 09 13:46:51 mail dovecot[5512]: dict: Fatal: master: service(dict): child 5542 killed with signal 11 (core dumps disabled - https://dovecot.org/bugreport.html#coredumps)
Apr 09 13:46:51 mail.halmex.com.mx dovecot[5512]: dict: Error: Fatal error in defaults handling. Program aborted
============================
====== Dovecot Information ======
2.3.5.1 (7ec6d0ade): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.5 (2483b085)
# OS: Linux 3.10.0-514.16.1.el7.x86_64 x86_64 CentOS Linux release 7.3.1611 (Core) xfs
doveconf: Warning: please set ssl_dh=</etc/dovecot/dh.pem
doveconf: Warning: You can generate it with: dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.pem
dict {
sieve = mysql:/etc/dovecot/pigeonhole-sieve.dict
}
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/vmail/%d/%Ln
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext
namespace inbox {
inbox = yes
location =
prefix =
separator = .
type = private
}
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
plugin {
pop3_migration_mailbox = imapc:
sieve_extdata_dict_uri = proxy::sieve
sieve_global_extensions = +vnd.dovecot.extdata
sieve_plugins = sieve_extdata
sieve_vacation_send_from_recipient = yes
sieve_before = /var/lib/dovecot/before.sieve
}
pop3c_host = mail.halmex.com.mx
service auth-worker {
user = root
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
mode = 0600
user = vmail
}
user = root
}
service dict {
unix_listener dict {
group = vmail
mode = 0600
user = vmail
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
}
}
userdb {
args = uid=5000 gid=5000 home=/var/vmail/%d/%Ln allow_all_users=yes
driver = static
}
protocol pop3 {
disable_plaintext_auth = no
}
protocol doveadm {
mail_plugins = " pop3_migration"
}
protocol lmtp {
mail_plugins = " sieve"
}
============================
An important bit of information it's that the dict service was trying to read the /etc/my.cnf file, but SELinux prevent it, and the sieve script worked fine, once I solved the SELinux access problem, the errors began to appear.
This is a postfix server working great for years, with a local MariaDB.
The remote MySQL server it’s in the same LAN and It’s reachable by the mail server and other servers, the account has access, and like I’ve mention, before I gave access to the local /etc/my.cnf the sieve script worked fine (just the SELinux warnings).
Looks like the dict service has problems with the local MariaDB configuration file, but in this scenario it’s not required
Any information or help you can provide me would be greatly appreciated.
Hugo Manuel Ojendiz Lemus
Desarrollo | Recursos Humanos | HALMEX
((°J°))