Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #no porta arquivos as imagens sempre vão utilizar o nome de assinatura - para podermos apagar antes de inserir uma nova imagem
- #
- #a assinatura sempre se chamara htmlpadrao
- #
- #
- ###########
- #devido a algum bug ainda desconhecido, ao inserir, modoficar ou deletar assinatura é necessário passar autenticacao
- user=admin
- pass=eednszoon
- #aplicativos
- zmmailbox=/opt/zimbra/bin/zmmailbox
- zmprov=/opt/zimbra/bin/zmprov
- uso="esse script pode ser usado de 3 formas\n
- \n
- a imagem deve ser gif\n
- \n
- primeira forma - atualizar somente 1 usuario\n
- ./assinatura.sh usuario [email protected] /opt/zimbra/scripts/assinatura.gif\n
- \n
- segunda forma - atualizar grupo de usuarios\n
- ./assintuara.sh grupo path_da_lista_de_usuario path_da_imagem\n
- Exemplo: ./assinatura.sh grupo /opt/zimbra/scripts/atualiza-ass /opt/zimbra/scripts/assinatura.gif\n
- \n
- terceira forma - atualizar todos os usuario\n
- ./assinatura.sh todos path_para_a_imagem\n
- \n"
- #funcao usario
- #insere a assinatura
- function assinatura() {
- email=$1
- pathdaimagem=$2
- #Quais os campos devemos obter do AD
- informacoes=( ^telephoneNumber ^description ^physicalDeliveryOfficeName )
- #removendo imagem anterior
- $zmmailbox -z -m $email deleteitem $( $zmmailbox -z -m $email search -t document assinatura.gif | grep assinatura. | awk '{ print $2 }' ) >> /dev/null 2>&1
- #inserindo nova imagem
- $zmmailbox -z -m $email postRestURL --contentType image/GIF "/Briefcase/assinatura.gif" $pathdaimagem
- #obtendo dados dos ad
- for ((i=0; i<3; i++ )) do
- dados[i]=`/opt/zimbra/bin/ldapsearch -x -h 172.16.10.81 -b DC=uam,DC=com,DC=br -D "CN=zimbra,CN=USERS,DC=uam,DC=com,DC=br" -w "zimbra.uam" mail=$email | egrep ${informacoes[i]} |cut -d":" -f 2 | sed 's/^\ //g'`
- done
- #preenchendo o campo telefone no zimbra
- $zmprov ma $email telephoneNumber "${dados[0]}"
- #preechendo o campo titulo no zimbra com cargo / setor
- $zmprov ma $email title "${dados[1]} / ${dados[2]}"
- #colocar o campo descripton de forma coreta
- $zmprov ma $email description "${dados[1]}"
- #obtendo o nome do usuario
- dados[3]=`$zmprov ga $email | egrep ^cn | cut -d":" -f 2 | sed 's/^\ //g'`
- #compondo a assinatura
- assinaturapadrao='<P><EM><FONT size=1><FONT size=2>@@@nome@@@<BR>@@@cargo@@@<BR>@@@telefone@@@</FONT><BR></FONT></EM><A href="http://www.altamogiana.com.br">www.altamogiana.com.br</A></P>
- <P> </P>
- <P> </P>
- <P><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" dfsrc="doc:Briefcase/assinatura.gif"> </P>
- <P> </P>
- <P> </P>'
- #substituir / por espaço ara que o sed proceda de forma corretar
- for ((i=0; i<3; i++ )) do
- dados[i]=`sed -e "s/\// /" <<< ${dados[i]} `
- done
- assinaturapronta=`sed -e "s/@@@nome@@@/${dados[3]}/" -e "s/@@@cargo@@@/${dados[1]}/" -e "s/@@@telefone@@@/${dados[0]}/" <<< $assinaturapadrao `
- #remover assinatura
- $zmprov -a $user -p $pass dsig $email htmlpadrao >> /dev/null 2>&1
- #criar assinatura html
- assinaturaid=`$zmprov -a $user -p $pass csig $email htmlpadrao zimbraPrefMailSignatureHTML "$assinaturapronta"`
- #assinatura ao enviar e responder
- $zmprov ma $email zimbraPrefForwardReplySignatureId $assinaturaid zimbraPrefDefaultSignatureId $assinaturaid
- }
- function grupo(){
- # $1 lista
- # $2 imagem
- cat $1 | while read linha; do
- assinatura $linha $2
- echo "feito" $linha
- done
- }
- function todos(){
- # $1 imagem
- arquivo=/tmp/`</dev/urandom tr -dc a-z0-9 | head -c 20`
- $zmprov -l gaa >> $arquivo
- grupo $arquivo $1
- rm -rf $arquivo
- }
- #inicio do script
- case $1 in
- usuario*)
- #verifica se o parmetro 2 foi passado
- if [ $2 ]; then
- if [ $3 -a -f $3 -a `file $3 | awk '{ print $2 }'` == "GIF" ] ; then
- assinatura $2 $3
- else
- echo "faltou o parametro imagem, path está errado ou a imagem não é gif"
- fi
- else
- echo "faltou o parametro usuario"
- fi
- ;;
- grupo*)
- #verifica se o parmetro 2 foi passado
- if [ $2 -a -f $2 ]; then
- if [ $3 -a -f $3 -a `file $3 | awk '{ print $2 }'` == "GIF" ] ; then
- grupo $2 $3
- else
- echo "faltou o parametro imagem, path está errado ou a imagem não é gif"
- fi
- else
- echo "faltou o parametro lista ou não é um arquivo válido"
- fi
- ;;
- todos*)
- if [ $2 -a -f $2 -a `file $2 | awk '{ print $2 }'` == "GIF" ] ; then
- todos $2
- fi
- ;;
- *)
- echo -ne $uso
- ;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment