Introdução
Zimbra Web Admin não possui ferramentas para gerar assinaturas de e-mail. Depois de vasculhar vários manuais, percebi que nenhum deles me convém.
A tarefa parece trivial, mas uma solução direta não foi encontrada imediatamente. Espero que este artigo ajude alguém a economizar muito tempo e esforço.
Da minha parte, isso é uma contribuição para a comunidade, pelos empreendimentos usados anteriormente.
requisitos de sistema
sistema: Linux Ubuntu 18.04
versão Zimbra: Zimbra 8.8.15
Script de geração de assinatura HTML
Vamos começar já com o próprio script ... abaixo darei explicações e uma descrição de como o script funciona.
#!/bin/bash
# created by Parfentiev Aleksey, Shultz Denis
SRC_LOGO="https://mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png"
SRC_TXT=" "
SIGN_NAME="_"
DOMEN="domen.ru"
# Check for run as zimbra user
ID=`id -u -n`
if [ x$ID != "xzimbra" ]; then
echo "Please run as ZIMBRA user"
echo "Exiting..."
exit 1
fi
# Obtain all user accounts in $DOMEN (template: Family.IN@domen.com or family.in_jr@domen.com)
accounts=`zmaccts | grep 'active'| grep $DOMEN | grep -P "(\b[A-z]+)\.(\D{2,5}@).*" | awk '{print $1}'`
for ac in $accounts; do
echo -ne "Checking account: $ac \t"
# Try delete signature
/opt/zimbra/bin/zmprov dsig $ac $SIGN_NAME
echo -ne "Setting signature... "
# Obtain signature from LDAP user atributes
declare -A arr
mapfile -t ARRAY < <(/opt/zimbra/bin/zmprov ga $ac | egrep "(^cn|^title|^mobile|^zimbraPrefFromAddress|^st|^l|^street|^telephoneNumber|^pager|^postalCode)" | sed 's/: /:/')
for sgn in "${ARRAY[@]}" ; do
KEY=${sgn%%:*}
VALUE=${sgn#*:}
arr[$KEY]=$VALUE
done
HTML='<div style="display: inline-block;" data-mce-style="display: inline-block;">'
HTML+='<br><table style="width: 550px; border: 0; border-top: 1px #e0e0e0 solid;" align="left" data-mce-style="width: 550px; border: 0; border-top: 1px #e0e0e0 solid;">'
HTML+='<tbody>'
HTML+='<tr><td style="width: 87px; padding: 5px;" valign="middle" align="center" data-mce-style="width: 87px; padding: 5px;">'
HTML+='<img src="'$SRC_LOGO'" alt="'$SRC_TXT'"></td>'
HTML+='<td style="font-size: 10pt; color: #808080; font-family: georgia, serif; width: 389px;" data-mce-style="font-size: 10pt; color: #808080; font-family: georgia, serif; width: 389px;">'
HTML+="${arr['cn']} - ${arr['title']} <br>: ${arr["telephoneNumber"]} .${arr["pager"]} : ${arr["mobile"]}"
HTML+="<br>e-mail: ${ac} <br>${arr['postalCode']} ${arr['st']} ${arr['l']} ${arr['street']}</td></tr></tbody></table></div>"
unset arr
# Set signature for account $ac and obtain signature id account
sign_id=$(/opt/zimbra/bin/zmprov csig $ac $SIGN_NAME zimbraPrefMailSignatureHTML "$HTML")
# Obtain delegates mailbox accounts
mapfile -t ARRAY < <(/opt/zimbra/bin/zmprov gid $ac name | cut -d " " -f 3-7 | grep -P '[^.*]')
for gid in "${ARRAY[@]}" ; do
# Set defalt signature position (outlook (before) or internet (after attachments)) for each account
/opt/zimbra/bin/zmprov modifyIdentity $ac "$gid" zimbraPrefDefaultSignatureId $sign_id zimbraPrefForwardReplySignatureId $sign_id zimbraPrefMailSignatureStyle outlook
done
echo "done!"
nós transferimos esse script para a máquina host da maneira que você conhece.
Coloque-o na pasta / usr / local / bin ... ou crie o arquivo zm_sign_html.sh ao longo deste caminho e copie / cole ...
sudo -i
# sudo user
# /usr/local/bin/zm_sign_html.sh
touch /usr/local/bin/zm_sign_html.sh
# copy/paste
#
chmod 755 /usr/local/bin/zm_sign_html.sh
Descrição do script
- verifique se o script está sendo executado a partir do usuário zimbra (os comandos CLI são executados a partir do usuário zimbra).
é possível fazer isso de forma diferente ... use o comando runuser e execute o script como root.
- .
:
family.in@domen.ru family.in_jr@domen.ru
: family — .
in —
in_jr — ( .).
: Zimbra
, ivanov.aa@domen.ru , zavod@domen.ru .
grep -P "(\b[A-z]+)\.(\D{2,5}@).*"
accounts=`zmaccts | grep 'active'| grep $DOMEN | grep -P "(\b[A-z]+)\.(\D{2,5}@).*" | awk '{print $1}'`
- SIGN_NAME ( — CLI , )
- .
LDAP, , HTML ( HTML ).
mapfile -t ARRAY < <(/opt/zimbra/bin/zmprov ga $ac | egrep "(^cn|^title|^mobile|^zimbraPrefFromAddress|^st|^l|^street|^telephoneNumber|^pager|^postalCode)" | sed 's/: /:/')
, : cn, title ..
:
- ( , ) .
, ( — ).
, ( « », « » « »).
. .
:
/opt/zimbra/bin/zmprov modifyIdentity $ac "$gid" zimbraPrefDefaultSignatureId $sign_id zimbraPrefForwardReplySignatureId $sign_id zimbraPrefMailSignatureStyle outlook
zimbraPrefMailSignatureStyle: outlook — , internet — …
— :
- .
- .
SRC_LOGO = " mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png " - link para o logotipo da organização.
Crie uma caixa de correio do departamento de TI (it@domen.ru). Zimbra possui um serviço de arquivamento de documentos integrado (Portfólio). Na caixa do departamento de TI no Portfólio, crie uma pasta LOGO, coloque o logotipo da nossa organização nela.
Permita o acesso a esta pasta.
Agora o logotipo da nossa organização está disponível no endereço:
mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png
SRC_TXT = "LOGO da organização" - um texto explicativo se o carregamento de imagens no navegador estiver desativado.
SIGN_NAME = "Organização" - Nome da assinatura (você pode transliterar, você pode em russo).
DOMEN= "Domen.ru" - o domínio de e-mail para o qual instalaremos as assinaturas.
Automação de execução
Configure um crontab do usuário zimbra:
sudo su zimbra
crontab -e
Cuidado, os trabalhos em segundo plano do zimbra estão sendo executados no crontabe deste usuário (entre as seções ZIMBRA_START e ZIMBRA_END).
Adicionamos Nossa tarefa ao final do arquivo ... não se esqueça de deixar uma linha em branco no final!
Executamos o script /usr/local/bin/zimbra/zm_sign_html.sh todos os dias às 6:00.
Arquivo crontab de exemplo:
#
35 3 * * * /opt/zimbra/bin/zmcbpadmin --cleanup >/dev/null 2>&1
# ZIMBRAEND -- DO NOT EDIT ANYTHING BETWEEN THIS LINE AND ZIMBRASTART
0 6 * * * /usr/local/bin/zm_sign_html.sh
Conclusão
É tudo por agora. Você pode adicionar um link para e-mail. Se alguém precisar, eu adicionarei.
Escreva nos comentários ...
Bom humor a todos! E não fique doente!
Links para artigos usados
phas13.blogspot.com/search/label/Zimbra
wiki.zimbra.com/wiki/Setting_automatic_Default_Signature
PS: Agradecimentos especiais a Denis Schultz (tlk234) para obter ajuda na depuração do script e trabalhar com a documentação do Zimbra CLI.