Para baixar acesse:
Pré-requisitos:
- PHP 5.x (com suporte à função 'mail()')
- MySQL 4.x ou superior
- Postfix 2.x (Não testado com outros MTA's)
- (opcional) Maildrop 2.x (Não testado com outros MDA's)
Instalação:
Descompacte-o na pasta desejada. Ex.: /usr/local/bin.
Depois dê permissão de execução:
# chmod +x openvacation
Verifique onde está instalado o binário do PHP (normalmente fica em /usr/bin/php). Se ele não ficar no caminho padrão, edite a primeira linha do script e troque:
#!/usr/bin/php
Para:
#!/usr/local/bin/php
Configuração:
Basta editar as seguintes linhas do script com seu editor de texto favorito:
//
// Database configuration
//
private $hostname = "mydatabasehost";
private $username = "openvacation";
private $password = "mypassword";
private $database = "openvacation";
private $tbl_vacation_cache = "mail_vacation_cache";
private $tbl_vacation_prefs = "mail_vacation_prefs";
//
// Vacation's related stuff
//
private $cache_time = "INTERVAL 1 DAY";
Explicando:
- $hostname -> Seu servidor MySQL
- $username -> Usuário do MySQL que o OpenVacation irá rodar
- $password -> Senha
- $database -> Database
- $tbl_vacation_cache -> Tabela de Cache (deixe no default)
- $tbl_vacation_prefs -> Tabela de preferências do destinatário (deixe no default)
- $cache_time -> Tempo do Cache (MySQL INTERVAL).
e.g.:
1 hora -> "INTERVAL 1 HOUR"
3 horas -> "INTERVAL 3 HOUR"
1 semana -> "INTERVAL 7 DAY"
1 ano -> "INTERVAL 1 YEAR"
Configurando o MySQL:
CREATE DATABASE openvacation;
USE openvacation;
CREATE TABLE `mail_vacation_cache` (
`id` int(32) unsigned NOT NULL auto_increment,
`recipient` varchar(128) NOT NULL default ,
`sender` varchar(128) NOT NULL default ,
`cache` datetime default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `recipient` (`recipient`,`sender`),
KEY `recipient_2` (`recipient`,`sender`)
);
CREATE TABLE `mail_vacation_prefs` (
`id` int(32) unsigned NOT NULL auto_increment,
`login` varchar(128) NOT NULL default ,
`vacation_text` text,
`vacation_subject` varchar(128) NOT NULL default ,
`initHour` time NOT NULL default '18:00:00',
`countHour` tinyint(2) NOT NULL default '14',
`active` enum('0','1') NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `login` (`login`)
);
Permissões do MySQL:
GRANT USAGE ON *.* TO 'openvacation'@'seu-servidor-mysql' IDENTIFIED BY 'mypassword';
GRANT SELECT, INSERT, UPDATE (cache) ON `openvacation`.`mail_vacation_cache` TO 'openvacation'@'seu-servidor-mysql';
GRANT SELECT ON `openvacation`.`mail_vacation_prefs` TO 'openvacation'@'seu-servidor-mysql';
Exemplo de configurações para um destinatário:
INSERT INTO mail_vacation_prefs (login, vacation_text, vacation_subject) VALUES ('somelogin@mydomain.tld', 'Sorry, I cant anwser you now ...', 'My vacation ...');
- Destinatário -> somelogin@mydomain.tld
- Mensagem -> Sorry, I cant anwser you now ...
- Assunto -> My vacation ...
Adiante explicarei como configurar o Postfix e o Maildrop para trabalharem com o OpenVacation.