Inicial > Zimbra - Email > Criação e atualização de Feeds no Zimbra

Criação e atualização de Feeds no Zimbra

#!/bin/bash
# Script para criacao e atualizacao de Feeds RSS nas caixas postais do Zimbra

LOG=/etc/feeds/log
domains=/etc/feeds/domains
feeds=/etc/feeds/feeds
zmmailbox=/opt/zimbra/bin/zmmailbox

while read dom;
do    
  dominio=$dom
  for usuario in $(/opt/zimbra/bin/zmprov -l gaa $dominio);do
      echo "" >> $LOG
      echo "Usuario: " $usuario >> $LOG
      while read line_feed;
      do
         feed=`echo $line_feed | cut -d* -f1`
         url_feed=`echo $line_feed | cut -d* -f2`
         canal=`$zmmailbox -z -m $usuario gaf | grep "$feed"`

           if [ -n "$canal" ]; then
              echo "Atualizando feed " $feed >> $LOG
                 $zmmailbox -z -m $usuario syncfolder "$feed" >> $LOG
           else
              echo "Criando feed: " $feed >> $LOG
                 $zmmailbox -z -m $usuario cf -u $url_feed "$feed" >> $LOG
        fi
   done < $feeds # fim while feed
 done # fim for
done < $domains #fim while dominio

Explicação do Script:

Variáveis:

  • LOG: armazena as informações de execução do script.
  • domains: contém os domínios configurados no servidor, ou que receberão os Feeds. No arquivo deve ser informado um domínio por linha.
    Ex: dominio.com.br
        dominio2.com.br
  • feeds: contém as urls dos feeds. Também deve ser informado um por linha. O ‘*’ é o caracter delimitador no script e deve ser informado.
    Ex: /Inbox/Canal TI*  http://site.com.br/index.php/ti?format=feed&type=rss*
        /Inbox/Canal RH*  http://site.com.br/index.php/rh?format=feed&type=rss*
  • zmmailbox: serviço que adicionará/atualizará os feeds;
  • dominio: domínio selecionado a cada iteração ‘do while read dom’;
  • usuario: usuário selecionado na execução do zmprov no loop ‘for’;
  • feed: primeira coluna do arquivo feeds. Corresponde à localização e nome do feed a ser criado/atualizado;
  • url_feed: segunda coluna do arquivo feeds. Corresponde ao endereço do feed a ser criado/atualizado;
  • canal: variável utilizada para verificar se o feed já existe para o usuário selecionado;

Primeiramente o script lê o arquivo dos domínios (domains) cadastrados. Cada iteração seleciona um domínio e dentro do loop são percorridas as caixas postais correspondentes. Em cada caixa postal, é verificada a existência de cada uma das urls presentes no arquivo feeds, caso o Feed não exista ele é criado,  se já existe é atualizado.

Categorias:Zimbra - Email Tags:
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário