PHP Autoresponder · 4 min read · Dec 30, 2025
Goldfish, Um Script Autoresponder PHP
Goldfish, Um Script Autoresponder PHP Para As Configurações “Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail” Do HowtoForge
Versão 1.0
Autor: Falko Timme
Goldfish é um script de autoresponder bastante simples (escrito em PHP) para Postfix. Consiste em apenas um arquivo PHP que pode ser iniciado através de um cronjob. Funciona com nossos tutoriais “Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail” (não pode ser usado para outras configurações, especialmente configurações do Postfix que não utilizam um banco de dados MySQL).
Não dou nenhuma garantia de que isso funcionará para você!
1 Nota Preliminar
Estou assumindo que você já tem uma configuração funcional de “Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail”, por exemplo:
- Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (Debian Lenny)
- Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (CentOS 5.3 x86_64)
- Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (Fedora 10)
- Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (Ubuntu 8.10)
- Usuários Virtuais E Domínios Com Postfix, Courier, MySQL E SquirrelMail (Mandriva 2009.0 i386)
2 Instalando E Usando Goldfish
Primeiro, conectamos ao nosso banco de dados de email MySQL e criamos uma tabela adicional chamada autoresponder:
mysql -u root -pUSE mail;CREATE TABLE `autoresponder` (
`email` varchar(255) NOT NULL default '',
`descname` varchar(255) default NULL,
`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=MyISAM DEFAULT CHARSET=latin1;quit;Depois, baixamos a versão mais recente do goldfish para /tmp e renomeamos o script PHP do goldfish para autoresponder.php:
cd /tmp
wget http://remofritzsche.ch/goldfish/download/current.tar.gz
tar xvfz current.tar.gz
cd goldfish-002p1/
mv goldfish-002-p1.php autoresponder.phpEm seguida, abrimos autoresponder.php e ajustamos a seção de Configuração. Certifique-se de preencher os detalhes corretos do banco de dados (você pode usar o usuário MySQL mail_admin existente); na linha $conf[‘q_mailbox_path’], certifique-se de substituir o nome da tabela view_users por users:
vi autoresponder.php| [...] ###################################### # Configuração # ###################################### /* Geral */ $conf['cycle'] = 5 * 60; /* Registro */ $conf['log_file_path'] = "/var/log/goldfish"; $conf['write_log'] = true; /* Informações do banco de dados */ $conf['mysql_host'] = "localhost"; $conf['mysql_user'] = "mail_admin"; $conf['mysql_password'] = "mail_admin_password"; $conf['mysql_database'] = "mail"; /* Consultas do banco de dados */ # Esta consulta deve retornar o caminho (`path`) do correspondente # maildir-Mailbox com o endereço de email %m $conf['q_mailbox_path'] = "SELECT CONCAT('/home/vmail/', SUBSTRING_INDEX(email,'@',-1), '/', SUBSTRING_INDEX(email,'@',1), '/') as `path` FROM users WHERE `email` = '%m'"; # Esta consulta deve retornar os seguintes campos da tabela autoresponder: `from`, `to`, `email`, `message` onde `enabled` = 2 $conf['q_forwardings'] = "SELECT * FROM `autoresponder` WHERE `enabled` = 1"; # Esta consulta deve desabilitar cada entrada de autoresponder que terminou no passado $conf['q_disable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 0 WHERE `to` < CURDATE();"; # Esta consulta deve ativar cada entrada de autoresponder que começa hoje $conf['q_enable_forwarding'] = "UPDATE `autoresponder` SET `enabled` = 1 WHERE `from` = CURDATE();"; # Esta consulta deve retornar a mensagem de uma entrada de autoresponder identificada pelo email %m $conf['q_messages'] = "SELECT `message` FROM `autoresponder` WHERE `email` = '%m'"; # Esta consulta deve retornar o assunto da entrada de autoresponder identificada pelo email %m $conf['q_subject'] = "SELECT `subject` FROM `autoresponder` WHERE `email` = '%m'"; [...] |
Depois, movemos autoresponder.php para /usr/local/bin, tornamos-o propriedade do usuário e grupo vmail, e o tornamos executável:
mv autoresponder.php /usr/local/binchown vmail:vmail /usr/local/bin/autoresponder.php
chmod 755 /usr/local/bin/autoresponder.phpAgora criamos o arquivo de log /var/log/goldfish e o tornamos propriedade do usuário e grupo vmail:
touch /var/log/goldfish
chown vmail:vmail /var/log/goldfishQuero que autoresponder.php seja executado a cada cinco minutos, portanto, crio um cron job para ele que será executado pelo usuário vmail:
crontab -u vmail -e| */5 * * * * /usr/local/bin/autoresponder.php |
É isso! Agora você pode criar autoresponders na tabela autoresponder, por exemplo, com phpMyAdmin ou na linha de comando, por exemplo, da seguinte forma:
mysql -u root -pUSE mail;INSERT INTO `autoresponder` (`email`, `descname`, `from`, `to`, `message`, `enabled`, `subject`) VALUES('[email protected]', '[email protected] Autoresponder', '2009-06-08', '2009-06-12', 'Estarei fora na semana de 8 de junho com acesso muito limitado ao email.\r\nResponderei o mais rápido possível.\r\nObrigado!\r\nFalko', 1, 'Fora do Escritório');quit;Isso cria um autoresponder para o endereço de email [email protected] que está ativo entre 8 de junho de 2009 e 12 de junho de 2009. Como o cron job do autoresponder é executado apenas a cada cinco minutos, a mensagem do autoresponder não será enviada imediatamente, mas dentro de cinco minutos após um email ser enviado para o endereço [email protected].
Você deve ver algo como isto no arquivo de log /var/log/goldfish sempre que um autoresponder for enviado do endereço [email protected]:
2009-06-08 07:00:01 Conexão com o banco de dados estabelecida com sucesso
2009-06-08 07:00:01 Banco de dados selecionado com sucesso
2009-06-08 07:00:01 Banco de dados atualizado com sucesso (entradas desabilitadas)
2009-06-08 07:00:01 Banco de dados atualizado com sucesso (entradas habilitadas)
2009-06-08 07:00:01 Diretórios maildir recuperados com sucesso
2009-06-08 07:00:01 Assunto de [email protected] recuperado com sucesso
2009-06-08 07:00:01 Mensagem de [email protected] recuperada com sucesso
2009-06-08 07:00:02 --------- Fim da execução ------------3 Links
- Goldfish: http://www.remofritzsche.ch/goldfish/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.