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: 29.167 ]

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

Debian + Postfix + MySQL + PostfixAdmin + MailScanner + Webmail + Quotas

Integrando o Exim4 com o SendGrid

Zimbra no Debian 5

Instalando o Thunderbird e colocando o atalho no desktop

Postfix - Relay agent

  
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