quinta-feira, 24 de outubro de 2013

Configurando o Sendmail para uso com o Jobsworth (ClockingIT)

O Sendmail é um sistema envio e recebimento de e-mail que pode ser usado em conjunto com com o Jobsworth. Os e-mails podem ser utilizados de duas formas. A primeira, quando o sistema envia alertas de novas atividades ou andamento em atividades já existentes. A segunda, quando o usuário responde ao e-mail de alerta enviado pelo sistema e esta resposta é automaticamente anexada aos andamentos da atividade correspondente.

Envio
Para configurar o Sendmail para envio de e-mails no Ubuntu 12.04:
1. Simplesmente instale o Sendmail
sudo apt-get install sendmail

e pronto! Você já pode enviar e-mails!

2. Supondo que o sendmail está instalado no mesmo servidor em que está a aplicação, configure o context.xml para usar localhost como SMTP.
  <!-- Jobsworth SMTP settings -->
  <Parameter name="config.smtp_host" value="localhost" override="false"/>
  <Parameter name="config.smtp_port" value="25" override="false"/>
  <Parameter name="config.smtp_domain" value="seudominio.com.br" override="false"/>


Crie uma nova tarefa e veja se chegou o e-mail de alerta do Jobsworth.

Recebimento
A configuração para recebimento de e-mails é um pouco mais complicada pois o Sendmail vai redirecionar os e-mails recebidos para um script do Linux. O sistema sabe a que atividade associar o e-mail que chegou porque o destinatário contém o código da mesma. Por exemplo:
task-1234@jobs.seudominio.com.br
[Aqui, jobs é o subdomínio definido no cadastro da empresa, na tabela ´companies´]

Vamos lá:
1. Instale o Sendmail. Se não estiver instalado, veja as instruções acima em "Envio".
2. Adicione o domínio em /etc/mail/local-host-names
jobs.seudominio.com.br

3. Adicione uma entrada em /etc/mail/aliases para associar um alias a um script.
jobsworth: "|/usr/local/share/jobsworth/mail_script.sh"

4. Adicione uma entrada em /etc/mail/virtusertable para direcionar os e-mails que chegam no nosso subdomínio para o alias criado acima. Possivelmente esse arquivo precisará ser criado.
@jobs.seudominio.com.br    jobsworth

5. Crie o script /usr/local/share/jobsworth/mail_script.sh que vai tratar de encaminhar o e-mail para uma chamada ao Jobsworth. A variável SECRET deve ser setada em ${TOMCAT_HOME}/context.xml e a variável URL deve conter o endereço do servidor.
#!/bin/sh
SECRET=password1234
URL=https://jobs.seudominio.com.br/emails
cat $2 | /usr/local/bin/curl -s -k --data-urlencode secret=${SECRET} --data-urlencode email@- ${URL}

6. Por segurança, a configuração padrão do Sendmail não envia e-mails. É preciso habilitá-lo para que o faça. Adicione o seguinte em /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=seu_ip_aqui')dnl

7. Por padrão, o Sendmail também não vem com virtusertable habilitado. Adicione o seguinte em /etc/mail/sendmail.mc
FEATURE(`virtusertable')dnl

Isso é suficiente para receber e-mails pelo Sendmail. Você pode fazer um teste com
telnet jobs.seudominio.com.br 25
Se aparecer algo parecido com
Connected to localhost.
Escape character is '^]'.
220 jobs.seudominio.com.br ESMTP Sendmail 8.12.8/8.12.8; Sun, 30 Nov 2003 13:19:45 +1300
seu servidor estará configurado corretamente.

Agora responda a um e-mail enviado pelo Jobsworth e veja se o corpo do e-mail aparece na lista de comentários da tarefa.

Nenhum comentário:

Postar um comentário