Hello again
Hmm autoresponder content in file and mta daemon checks if the file is present and then serve a content of it .. i suppose
My database ... needed tables and views
-- users mailboxes
CREATE TABLE mail_accounts (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
admin_id INT(11) UNSIGNED NOT NULL,
active INT(1) NOT NULL DEFAULT '1',
locked INT(1) NOT NULL DEFAULT '0',
user_name VARCHAR(255) NOT NULL DEFAULT '',
domain_id INT(11) UNSIGNED NOT NULL,
forward_value VARCHAR(255) NOT NULL DEFAULT '',
alias_value TEXT NOT NULL DEFAULT '',
permited_mode INT(1) NOT NULL DEFAULT '0',
permited_senders TEXT NOT NULL DEFAULT '',
autoreplay_set INT(1) NOT NULL DEFAULT '0',
autoreplay_days INT(5) NOT NULL DEFAULT '1',
autoreplay_value TEXT NOT NULL DEFAULT '',
homedir VARCHAR(512) NOT NULL DEFAULT '/var/mail/boxes',
maildir VARCHAR(512) NOT NULL DEFAULT '/var/mail/boxes',
spam_scan INT(1) NOT NULL DEFAULT '1',
spam_purge INT(1) NOT NULL DEFAULT '1',
spam_folder INT(1) NOT NULL DEFAULT '0',
spam_report_days INT(2) NOT NULL DEFAULT '0',
remote_account INT(1) NOT NULL DEFAULT '0',
remote_server VARCHAR(128) NOT NULL DEFAULT '',
fullname VARCHAR(255) NOT NULL DEFAULT '',
description TEXT NOT NULL DEFAULT '',
uid INT(6) UNSIGNED NOT NULL DEFAULT '79',
gid INT(6) UNSIGNED NOT NULL DEFAULT '79',
passwd_crypt VARCHAR(128) NOT NULL DEFAULT '',
passwd_plain VARCHAR(128) NOT NULL DEFAULT '',
bandwidth_limit INT(5) UNSIGNED NOT NULL DEFAULT '1',
message_limit INT(5) UNSIGNED NOT NULL DEFAULT '1',
quota_limit INT(5) UNSIGNED NOT NULL DEFAULT '1',
quota_usage INT(16) NOT NULL DEFAULT '0',
quota_warning INT(3) NOT NULL DEFAULT '95',
transfer_speed INT(5) UNSIGNED NOT NULL DEFAULT '1',
forget_question VARCHAR(255) NOT NULL DEFAULT 'Favorite ISP',
forget_anwser TEXT,
imap_enabled INT(1) NOT NULL DEFAULT '1',
pop3_enabled INT(1) NOT NULL DEFAULT '1',
webmail_enabled INT(1) NOT NULL DEFAULT '1',
add_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
mod_date TIMESTAMP NOT NULL DEFAULT '2020-01-01 23:59:00',
exp_date TIMESTAMP NOT NULL DEFAULT '2020-01-01 23:59:00',
CHECK ( active IN ('1','0') ),
CHECK ( locked IN ('1','0') ),
CHECK ( permited_mode IN ('1','0') ),
CHECK ( autoreplay_set IN ('1','0') ),
CHECK ( spam_scan IN ('1','0') ),
CHECK ( spam_purge IN ('1','0') ),
CHECK ( spam_folder IN ('1','0') ),
CHECK ( remote_account IN ('1','0') ),
CHECK ( imap_enabled IN ('1','0') ),
CHECK ( pop3_enabled IN ('1','0') ),
CHECK ( webmail_enabled IN ('1','0') ),
PRIMARY KEY(id),
CONSTRAINT mail_accounts_key1 FOREIGN KEY (admin_id) REFERENCES user_accounts(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT mail_accounts_key2 FOREIGN KEY (domain_id) REFERENCES mail_domains(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT mail_accounts_key3 FOREIGN KEY (bandwidth_limit) REFERENCES bandwidth_limits(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT mail_accounts_key4 FOREIGN KEY (message_limit) REFERENCES quota_space(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT mail_accounts_key5 FOREIGN KEY (quota_limit) REFERENCES quota_space(id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT mail_accounts_key6 FOREIGN KEY (transfer_speed) REFERENCES transfer_limits(id) ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE KEY mail_accounts_UIDX1(user_name,domain_id)
) TYPE=InnoDB COMMENT='Mail Accounts';
-- imap
CREATE VIEW v_daemon AS SELECT mail_accounts.id AS id , mail_accounts.user_name AS account , v_domain_real.domain AS domain , mail_accounts.passwd_crypt AS passwd_crypt , mail_accounts.passwd_plain AS passwd_plain , mail_accounts.uid AS uid , mail_accounts.gid AS gid , CONCAT(mail_accounts.user_name,'@',v_domain_real.domain) AS email , mail_accounts.homedir AS homedir ,mail_accounts.fullname AS fullname , mail_accounts.maildir AS maildir , IF(quota_space.value !='0',CONCAT(quota_space.value,'M'),quota_space.value) AS quota , mail_accounts.locked AS locked FROM mail_accounts JOIN ( v_domain_real , quota_space ) ON ( mail_accounts.domain_id = v_domain_real.id AND mail_accounts.quota_limit = quota_space.id ) WHERE mail_accounts.exp_date > NOW() AND mail_accounts.active = '1' AND mail_accounts.alias_value = '' ;
first one is a table where to i save autoresponder settings and the second one is used for getting user is (in RC plugin called $adnet_id)
mta stands for "message transfer agent"
"mta database" in my case means that all settings needed to handle mail processing are stored in database (MySQL) and MTA daemon (exim) is "reading" whole configuration of accounts from database (no need to reload after changes for example)
you wrote about some "bridge", parsing from database to file ... it's nice beacuse you don't have to develop your own tools to handle autoresponse (all done by mta daemon), but parsing takes some time, and have to be done every 5 min for example, which is not the best solution, beacuse it needs cron, memory, cpu and temporary database / table.
maybe (if apache have access to path where autoresponder config files are stored) you should modify RC plugin to direct create / edit autoreponder files? get some template from your hoster and try