Pré-requisitos

Preencha as informações de cada conta que você utilizará para gerar as assinaturas. Veja abaixo as configurações (Na WebCli – console de gerenciamento web do zimbra – sabe a porta 7071???)

 

Detalhe importante! Não consegui imprimir na assinatura os caracteres acentuados de forma correta. Portanto, nos campos com acentos, utilizei TAGs HTML (São Paulo – São Paulo sabe???) – Se você souber como ajustar essa opção, por favor, comenta, entra em contato com kram3r(at)gmail.com, vai lá no Zimbrasil do telegram e ajuda!

Se você tiver muitos usuários e eles não tem a informação básica da empresa (endereço, telefone principal, etc), tente utilizar o zmprov para popular ou definir essas informações onde:


street = endereço

l = (letra L minusculo) cidade

st = ESTADO (UF)

co = País

postalCode = CEP

telephoneNumber = Número do telefone (costumo colocar o número centra da empresa)

mobile = Número do celular do usuário

title = Cargo do usuário

A partir daí, você pode executar o comando zmprov ma para modificar os valores. Faça um script para modificar todas as contas que terão a nova assintaura.


#Vamos definir a cidade para são paulo - por conta do código HTML da acentuação)

zmprov ma usuario@dominio.com.br l "São Paulo"

#Ou vamos definir a cidade para Rio de Janeiro - sem o uso de código HTML

zmprov ma usuario@dominio.com.br l "Rio de Janeiro"

Informações gerais

 

Informações do contato

 

Mãos a obra!


#!/bin/bash
#Defina um email para recuperar os dados da assinatura.
ACCOUNT="ananias@zimbrasil.com.br"
IFS=$'\n'
#Aqui é criada a mágica! será retornado um Array para que possamos utilizar em nosso script que gera a assinatura.
signature=($(zmprov ga $ACCOUNT | egrep "(^cn|^company|^street|^l|^st|^co|^postalCode|^telephoneNumber|^mobile|^title)" | cut -d : -f 2 | sed 's/^\ //g'))

#Personal data
NAME=${signature[0]}
COMPANY=${signature[2]}
TITLE=${signature[9]}
#Contacts
PHONE=${signature[8]}
MOBILE=${signature[4]}
MAIL=$ACCOUNT
#Address
STREET=${signature[7]}
CITY=${signature[3]}
STATE=${signature[6]}
ZIP=${signature[5]}
COUNTRY=${signature[1]}

#echo -e "
### Exibir o Codigo do Array para simples conferencia
### caso tenha algum campo errado acima.
Codigo 0= ${signature[0]} - NAME
Codigo 1= ${signature[1]} - COUNTRY
Codigo 2= ${signature[2]} - COMPANY
Codigo 3= ${signature[3]} - CITY
Codigo 4= ${signature[4]} - MOBILE
Codigo 5= ${signature[5]} - ZIP
Codigo 6= ${signature[6]} - STATE
Codigo 7= ${signature[7]} - STREET
Codigo 8= ${signature[8]} - PHONE
Codigo 9= ${signature[9]} - TITLE
"

O resultado, será algo como esse:

### Exibir o Codigo do Array para simples conferencia
### caso tenha algum campo errado acima.
Codigo 0= Ananias Filho – NAME
Codigo 1= BR – COUNTRY
Codigo 2= ZimBrasil – COMPANY
Codigo 3= São Paulo – CITY
Codigo 4= 11 91234 5678 – MOBILE
Codigo 5= 04111-000 – ZIP
Codigo 6= SP – STATE
Codigo 7= Rua do Telegram.me 2018 – STREET
Codigo 8= 11 3333 9999 – PHONE
Codigo 9= Administrador do Grupo ZimBrasil – TITLE

### Perceba que o email não veio porque já informamos no $ACCOUNT e confirmamos no $MAIL (isso foi feito para fins de exemplo. O $MAIL irá sumir quando fizermos a busca de todas as contas pelo LDAP do Zimbra).

Agora, iremos fazer o script inserir no Ldap do zimbra a assinatura em HTML contendo: Nome, Cargo (TITLE), Telefone ($PHONE), Celular ($MOBILE) e email ($MAIL)

Lembrou de fazer aquele script lá em cima para atualizar os telefones e cargos? ou colocou tudo na mão?


#!/bin/bash
#Defina um email para recuperar os dados da assinatura.
MAIL="ananias@zimbrasil.com.br"
IFS=$'\n'
#Aqui é criada a mágica! será retornado um Array para que possamos utilizar em nosso script que gera a assinatura.
signature=($(zmprov ga $MAIL | egrep "(^cn|^company|^street|^l|^st|^co|^postalCode|^telephoneNumber|^mobile|^title)" | cut -d : -f 2 | sed 's/^\ //g'))

#Personal data
NAME=${signature[0]}
COMPANY=${signature[2]}
TITLE=${signature[9]}
#Contacts
PHONE=${signature[8]}
MOBILE=${signature[4]}
MAIL=$ACCOUNT
#Address
STREET=${signature[7]}
CITY=${signature[3]}
STATE=${signature[6]}
ZIP=${signature[5]}
COUNTRY=${signature[1]}

#Vamos criar a assinatura e definir como habilitada
zmprov ma $MAIL zimbraPrefMailSignatureEnabled TRUE
#Vamos inserir o código HTML
zmprov csig $MAIL defaultCompanySignature zimbraPrefMailSignatureHTML "

<b style='font-size: 14px; color: #2E6885;'>$NAME</b>
<i style='font-size: 12px;'>$TITLE</i>


<div style='font-size: 12px;'>$PHONE / $MOBILE</div>




<div style='font-size: 12px;'>$MAIL</div>



"

 

O resultado será a hash da Assinatura do usuário:


zimbra@zimbra:~$ bash /tmp/assinatura.sh
03a16ee2-f2a7-452c-a08c-9117538381bc

Atualize a tela do webmail do zimbra, ou saia e entre novamente.
Crie um novo email e você verá a assinatura no final do editor.

Opa!!! bem legal né?

Mas vamos melhorar??? Colocar imagens, fazer um template apresentável, fazer coisa de gente que gosta de mostrar sua marca!
Antes de copiar e colar o conteúdo do script, vai lá embaixo e veja o resultado!

</pre>
#!/bin/bash
ACCOUNT="ananias@zimbrasil.com.br"
IFS=$'\n'
signature=($(zmprov ga $ACCOUNT | egrep "(^cn|^company|^street|^l|^st|^co|^postalCode|^telephoneNumber|^mobile|^title)" | cut -d : -f 2 | sed 's/^\ //g'))

#### Define signature values ####
# Signature Name
SIGNATURE_NAME="CompanySignatureName"
# Comapany URL and Logo
URL_DOMAIN="https://www.zimbrasil.com.br"
URL_LOGO="https://www.zimbrasil.com.br/wp-content/uploads/2018/08/ZimBrasil_Logo_transparent.png"
#Personal data
NAME=${signature[0]}
COMPANY=${signature[2]}
TITLE=${signature[9]}
#Contacts
PHONE=${signature[8]}
MOBILE=${signature[4]}
MAIL=$ACCOUNT

#Address
STREET=${signature[7]}
CITY=${signature[3]}
STATE=${signature[6]}
ZIP=${signature[5]}
COUNTRY=${signature[1]}

#echo -e "
zmprov ma $MAIL zimbraPrefMailSignatureEnabled TRUE
SIGNATURE_ID=`zmprov csig $MAIL $SIGNATURE_NAME zimbraPrefMailSignatureHTML "
<table style='font-family: Verdana, sans-serif;' cellpadding='0' cellspacing='0'>
<tbody>
<tr>
<td style='border-right: 2px solid; border-right-color: #2e6885; padding-right: 15px; text-align: right; vertical-align: top;' valign='top'>
<table style='margin-right: 0; margin-left: auto;' cellpadding='0' cellspacing='0'>
<tbody>
<tr>
<td style='height: 55px; vertical-align: top; text-align: right; font-family: Verdana, sans-serif; color: #444444;' valign='top' align='right'><span style='font-family: Verdana, sans-serif; color: #444444; font-size: 14pt; font-weight: bold;'><span style='font-size: 12pt;'> $NAME </span><span><br /></span></span><span style='font-family: Verdana, sans-serif; color: #444444; font-size: 8pt;'> $TITLE </span></td>
</tr>
<tr>
<td style='height: 40px; vertical-align: top; padding: 0px; font-family: Verdana, sans-serif; color: #444444; text-align: left;' valign='top' align='right'><span style='font-size: 8pt;'><span style='font-family: Verdana, sans-serif; color: #444444;'>phone: $PHONE<br /></span> <span style='font-family: Verdana, sans-serif; color: #444444;'>mobile: $MOBILE</span><br /><span style='font-family: Verdana, sans-serif; color: #444444;'>$MAIL</span></span></td>
</tr>
<tr>
<td style='height: 20px; vertical-align: middle; text-align: right;' valign='middle' align='right'></td>
</tr>
</tbody>
</table>
</td>
<td style='padding-left: 15px; font-size: 1pt; vertical-align: top;' valign='top'>
<table cellpadding='0' cellspacing='0'>
<tbody>
<tr>
<td style='height: 55px; vertical-align: top;' valign='top'><a href='$URL_DOMAIN' target='_blank' rel='noopener'><img alt='logo' style='height: 50px; width: auto; border: 0;' height='50' border='0' src='$URL_LOGO' /></a></td>
</tr>
<tr>
<td style='height: 40px; vertical-align: top; padding: 0; font-family: Verdana, sans-serif; color: #444444;' valign='top'><span style='font-size: 8pt;'><span style='font-family: Verdana, sans-serif; color: #444444;'>$STREET<br /></span> <span style='font-family: Verdana, sans-serif; color: #444444;'>$ZIP<br></span><span style='font-family: Verdana, sans-serif; color: #444444;'> $CITY , $STATE / $COUNTRY </span></span></td>
</tr>
<tr>
<td style='height: 20px; vertical-align: middle;' valign='middle'><a href='$URL_DOMAIN' target='_blank' rel='noopener' style='text-decoration: none;'><span style='font-size: 10pt; font-family: Verdana, sans-serif; color: #bd272d;'><span style='color: #2e6885; font-family: Verdana, sans-serif;'>$URL_DOMAIN</span></span></a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>

"
`

#Vamos definir a assinatura criada como default para Respostas e encaminhamentos
#Lets define it as Replay/Forward signature default

zmprov ma $ACCOUNT zimbraPrefForwardReplySignatureId "$SIGNATURE_ID"
<pre>

Olha o resultado!

 

Há alguns sites na internet para gerar assinaturas por email como o https://www.mail-signatures.com/signature-generator/#/company-data (tem vários templates)

Como tenho outras coisas para fazer agora, irei parar por aqui e qualquer hora retorno para mostrar como aplicar para todos os usuários do dominio ok?

Comentários serão bem-vindos!

 

Referências:
https://wiki.zimbra.com/wiki/Automation:_how_to_change_all_users%27s_individual_signatures
https://forums.zimbra.org/viewtopic.php?t=17758