Goldfish: Autoresponder para PostFix

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:

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…

Un comentario en “Goldfish: Autoresponder para PostFix

Comments are closed.