Vacation fácil com o OpenVacation

rga

Esse artigo mostra um jeito fácil de implementar sistema de vacation com informações guardadas no banco de dados (MySQL) SEM a necessidade de outros programas como o PostfixAdmin e com alto nível de personalização.

[ Hits: 30.035 ]

Por: Roberto Gonzalez Azevedo em 28/12/2006


Instalando e configurando



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.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando e configurando
   3. Configurando o Postfix ou Maildrop
   4. Considerações finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor Postfix Total

Servidor de email completo com Postfix

Dividindo carga de saída de servidor SMTP (MTA Selor)

Postfix + Dovecot + MySQL + Squirrelmail no CentOS 5.5 32/64 bits

Configurando o Korn

  
Comentários
[1] Comentário enviado por m4tri_x em 28/12/2006 - 08:51h

O projeto é teu kra?
show de bola, parabéns,
valeu mesmo.

[2] Comentário enviado por rga em 28/12/2006 - 14:57h

Obrigado kra, vlw mesmo !!!
t+

[3] Comentário enviado por leandromoreirati em 30/12/2006 - 13:59h

Otimo artigo.
Parabens.

[4] Comentário enviado por removido em 01/01/2007 - 03:40h

po vlw,parabens pelo artigo

[5] Comentário enviado por silent-man em 17/07/2008 - 19:20h

Cara seguinte,
está tudo nos conformes...
quando executo: /usr/local/sbin/openvacation gleison@meudominio.com.br teste321@meudominio.com.br "Estou de Férias". ele envia um email pro gleison@x.x.x. Quero saber como fazer pra que funcione realmente, assim quando eu enviar por exemplo do webmail do gmail pra teste321@meudominio.com.br ele mandar pro gleison@meudominio.com.br.

fiz todos os passos descritos acima que estão iguais aos passos do INSTALL(how-to).

Grato

[6] Comentário enviado por linhocbj em 20/01/2012 - 14:22h

Boa tarde,
Muito bom esse openvacation, eu recomendo.
Mas agora estou com um problema em um novo servidor que estou instalando. Estou com o mesmo problema do usuário acima.
ele não está funcionando "automático", e as linhas no msater.cf e main estão incluídas corretamente.
O que mais poderá ser ?!


Obrigado,


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts