Goldfish es un sencillo sistema de autoresponder para servidores de correo Postfix + MySQL escrito en PHP. Se trata únicamente de un fichero PHP que trabaja conjuntamente con una simple base de datos que almacena los autoresponder. Se ejecuta a través de un cronjob.
La instalación es sencilla, asumimos que tenemos instalado lo siguiente:
- MySQL-Server (mysql.org)
- POSTFIX (postfix.org)
- PHP5+ cli ( php.net)
Lo primero que haremos será crear la base de datos de autoresponder y crear la siguiente tabla:
CREATE TABLE `autoresponder` ( `email` varchar(255) NOT NULL default '', `from` date NOT NULL default '0000-00-00', `to` date NOT NULL default '0000-00-00', `message` text NOT NULL, `enabled` tinyint(4) NOT NULL default '0', `subject` varchar(255) NOT NULL default '', PRIMARY KEY (`email`), FULLTEXT KEY `message` (`message`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Posteriormente asignaremos un nuevo usuario mysql que gestionará esta base de datos:
mysql -u root -p (your password) mysql> GRANT SELECT ON `database`.`autoresponder` TO `goldfish` IDENTIFIED BY PASSWORD('myPassword'); mysql> exit;
Será recomendable asignar también permisos de select a este usuario en la base de datos donde se encuentran las cuentas de correo (bd de postfix).
Ahora ya podemos descargar la última versión estable de GoldFish, y ubicamos el php donde deseemos, asegurad que no tiene permiso de lectura para «otros» pues guardará datos de conexión mysql.
/home/goldfish/autoresponder.php
Ahora editamos el fichero y repasamos las distintas configuraciones:
Aquí le especificamos el intervalo de tiempo en el que se ejecuta el cron (por defecto está Ok):
/* General */ $conf['cycle'] = 5 * 60;
si quisieramos guardar log, lo activamos poniendolo a true:
/* Logging */ $conf['log_file_path'] = "/var/log/goldfish"; $conf['write_log'] = true;
Especificamos los datos de conexión a la base de datos de autoresponder:
/* Database information */ $conf['mysql_host'] = "localhost"; $conf['mysql_user'] = "user"; $conf['mysql_password'] = ""; $conf['mysql_database'] = "postfix";
Finalmente la configuración relacionada con las consultas SQL:
Esta consulta tiene que devolver la ruta (`path`) de la cuenta de correo «%m», probadlo en mysql o desde phpmyadmin, quizás debáis cambiar la ruta a vuestros buzones, en este caso /home/vmail:
$conf['q_mailbox_path'] = "SELECT CONCAT('/home/', home,'/mail/',SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') AS `path` FROM `users` WHERE `email` = '%m'";
Esta consulta devuelve los valores siguientes de la tabla autoresponder`from`, `to`, `email`, `message` where `enabled` = 2:
$conf['q_forwardings'] = "SELECT * FROM `autoresponder` WHERE `enabled` = 1";
Esta consulta desactivará los autoresponder cuya fecha de validez haya pasado:
$conf['q_disable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 0 WHERE `to` < CURDATE();";
Esta consulta activará los autoresponder cuya fecha así lo requiera:
$conf['q_enable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 1 WHERE `from` = CURDATE();";
Esta consulta sacará el mensaje del autoresponder para la cuenta %m:
$conf['q_messages'] = "SELECT `message` FROM `autoresponder` WHERE `email` = '%m'";
Y esta consulta el asunto para la cuenta %m:
$conf['q_subject'] = "SELECT `subject` FROM `autoresponder` WHERE `email` = '%m'";
Finalmente añadiremos el cronjob (ejemplo):
*/5 * * * * vmail php /home/goldfish/autoresponder.php
Y ahora solo queda añadir registros a la tabla «autoresponder», cada uno será un contestador automático, simplemente rellenad los campos asunto, mensaje, dirección email, etc…