Guest User

Untitled

a guest
Nov 28th, 2013
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.31 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #no porta arquivos as imagens sempre vão utilizar o nome de assinatura - para podermos apagar antes de inserir uma nova imagem
  4. #
  5. #a assinatura sempre se chamara htmlpadrao
  6. #
  7. #
  8.  
  9. ###########
  10. #devido a algum bug ainda desconhecido, ao inserir, modoficar ou deletar assinatura é necessário passar autenticacao
  11. user=admin
  12. pass=eednszoon
  13.  
  14. #aplicativos
  15. zmmailbox=/opt/zimbra/bin/zmmailbox
  16. zmprov=/opt/zimbra/bin/zmprov
  17.  
  18. uso="esse script pode ser usado de 3 formas\n
  19. \n
  20. a imagem deve ser gif\n
  21. \n
  22. primeira forma - atualizar somente 1 usuario\n
  23. ./assinatura.sh usuario [email protected] /opt/zimbra/scripts/assinatura.gif\n
  24. \n
  25. segunda forma - atualizar grupo de usuarios\n
  26. ./assintuara.sh grupo path_da_lista_de_usuario path_da_imagem\n
  27. Exemplo: ./assinatura.sh grupo /opt/zimbra/scripts/atualiza-ass /opt/zimbra/scripts/assinatura.gif\n
  28. \n
  29. terceira forma - atualizar todos os usuario\n
  30. ./assinatura.sh todos path_para_a_imagem\n
  31. \n"
  32.  
  33. #funcao usario
  34. #insere a assinatura
  35. function assinatura() {
  36. email=$1
  37. pathdaimagem=$2
  38.  
  39. #Quais os campos devemos obter do AD
  40. informacoes=( ^telephoneNumber ^description ^physicalDeliveryOfficeName )
  41.  
  42. #removendo imagem anterior
  43. $zmmailbox -z -m $email deleteitem $( $zmmailbox -z -m $email search -t document assinatura.gif | grep assinatura. | awk '{ print $2 }' ) >> /dev/null 2>&1
  44.  
  45. #inserindo nova imagem
  46. $zmmailbox -z -m $email postRestURL --contentType image/GIF "/Briefcase/assinatura.gif" $pathdaimagem
  47.  
  48. #obtendo dados dos ad
  49. for ((i=0; i<3; i++ )) do
  50.     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'`
  51. done
  52.  
  53. #preenchendo o campo telefone no zimbra
  54. $zmprov ma $email telephoneNumber "${dados[0]}"
  55.  
  56. #preechendo o campo titulo no zimbra com cargo / setor
  57. $zmprov ma $email title "${dados[1]} / ${dados[2]}"
  58.  
  59. #colocar o campo descripton de forma coreta
  60. $zmprov ma $email description "${dados[1]}"
  61.  
  62. #obtendo o nome do usuario
  63. dados[3]=`$zmprov ga $email | egrep ^cn | cut -d":" -f 2 | sed 's/^\ //g'`
  64.  
  65. #compondo a assinatura
  66. 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>
  67. <P>&nbsp;</P>
  68. <P>&nbsp;</P>
  69. <P><IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" dfsrc="doc:Briefcase/assinatura.gif">&nbsp;</P>
  70. <P>&nbsp;</P>
  71. <P>&nbsp;</P>'
  72.  
  73. #substituir / por espaço ara que o sed proceda de forma corretar
  74. for ((i=0; i<3; i++ )) do
  75.     dados[i]=`sed -e "s/\// /" <<< ${dados[i]} `
  76. done
  77.  
  78. assinaturapronta=`sed -e "s/@@@nome@@@/${dados[3]}/" -e "s/@@@cargo@@@/${dados[1]}/" -e "s/@@@telefone@@@/${dados[0]}/" <<< $assinaturapadrao `
  79.  
  80. #remover assinatura
  81. $zmprov -a $user -p $pass dsig $email htmlpadrao >> /dev/null 2>&1
  82.  
  83. #criar assinatura html
  84. assinaturaid=`$zmprov -a $user -p $pass csig $email htmlpadrao zimbraPrefMailSignatureHTML "$assinaturapronta"`
  85.  
  86. #assinatura ao enviar e responder
  87. $zmprov ma $email zimbraPrefForwardReplySignatureId $assinaturaid zimbraPrefDefaultSignatureId $assinaturaid
  88.  
  89. }
  90.  
  91. function grupo(){
  92. # $1 lista
  93. # $2 imagem
  94. cat $1 | while read linha; do
  95.     assinatura $linha $2
  96.     echo "feito" $linha
  97. done
  98.  
  99. }
  100.  
  101. function todos(){
  102.  
  103. # $1 imagem
  104. arquivo=/tmp/`</dev/urandom tr -dc a-z0-9 | head -c 20`
  105. $zmprov -l gaa >> $arquivo
  106. grupo $arquivo $1
  107. rm -rf $arquivo
  108.  
  109. }
  110.  
  111. #inicio do script
  112. case $1 in
  113.     usuario*)
  114.         #verifica se o parmetro 2 foi passado
  115.         if [ $2 ]; then
  116.             if [ $3 -a -f $3 -a `file $3 | awk '{ print $2 }'` == "GIF" ]  ; then
  117.                 assinatura $2 $3
  118.             else
  119.                 echo "faltou o parametro imagem, path está errado ou a imagem não é gif"
  120.             fi
  121.         else
  122.             echo "faltou o parametro usuario"
  123.         fi
  124.     ;;
  125.     grupo*)
  126.         #verifica se o parmetro 2 foi passado
  127.         if [ $2 -a -f $2 ]; then
  128.             if [ $3 -a -f $3 -a `file $3 | awk '{ print $2 }'` == "GIF" ]  ; then
  129.                 grupo $2 $3
  130.             else
  131.                 echo "faltou o parametro imagem, path está errado ou a imagem não é gif"
  132.             fi
  133.         else
  134.             echo "faltou o parametro lista ou não é um arquivo válido"
  135.         fi
  136.     ;;
  137.     todos*)
  138.         if [ $2 -a -f $2 -a `file $2 | awk '{ print $2 }'` == "GIF" ]  ; then
  139.             todos $2
  140.         fi
  141.     ;;
  142.     *)
  143.         echo -ne $uso
  144.     ;;
  145. esac
Advertisement
Add Comment
Please, Sign In to add comment