Zimbra - Menghasilkan Tanda Tangan HTML Berdasarkan Data LDAP

pengantar



Tidak ada alat untuk membuat tanda tangan email di Zimbra Web Admin. Setelah menyekop banyak manual, saya menyadari bahwa tidak ada yang cocok untuk saya.



Tugas tersebut tampaknya sepele, tetapi solusi langsung tidak segera ditemukan. Semoga artikel ini membantu seseorang menghemat banyak waktu dan tenaga.



Bagi saya, ini adalah kontribusi kepada komunitas, untuk perkembangan yang digunakan sebelumnya.



Persyaratan sistem



sistem: Linux Ubuntu 18.04

Versi Zimbra: Zimbra 8.8.15



Skrip pembuatan tanda tangan HTML



Mari kita mulai langsung dengan skrip itu sendiri ... di bawah ini saya akan memberikan penjelasan dan gambaran tentang cara kerja skrip.



#!/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!"


kami mentransfer skrip ini ke mesin host dengan cara apa pun yang Anda ketahui.



Letakkan di folder / usr / local / bin ... atau buat file zm_sign_html.sh di sepanjang jalur ini dan salin / tempel ...



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


Deskripsi skrip



  1. periksa apakah skrip dijalankan dari pengguna zimbra (perintah CLI dijalankan dari pengguna zimbra).

    dimungkinkan untuk melakukannya secara berbeda ... gunakan perintah runuser dan jalankan skrip sebagai root.

  2. .



    :



    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}'`
    


  3. SIGN_NAME ( โ€” CLI , )

  4. .



    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 ..



    :





  5. ( , ) .



    , ( โ€” ).







    , ( ยซ ยป, ยซ ยป ยซ ยป).



    . .



    :



    /opt/zimbra/bin/zmprov modifyIdentity $ac "$gid" zimbraPrefDefaultSignatureId $sign_id zimbraPrefForwardReplySignatureId $sign_id zimbraPrefMailSignatureStyle outlook


    zimbraPrefMailSignatureStyle: outlook โ€” , internet โ€” โ€ฆ



    โ€” :





  6. .

  7. .





SRC_LOGO = " mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png " - tautan ke logo organisasi.



Buat kotak surat departemen TI (it@domen.ru). Zimbra memiliki layanan pengarsipan dokumen (Portofolio) bawaan. Di kotak departemen TI di Portofolio, buat folder LOGO, letakkan logo organisasi kita di dalamnya.



Izinkan akses ke folder ini.



gambar



Sekarang logo organisasi kami tersedia di alamat:

mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png



SRC_TXT = "LOGO Organisasi" - penjelasan teks jika pemuatan gambar di browser dinonaktifkan.



SIGN_NAME = "Organisasi" - Nama tanda tangan (Anda bisa transliterasi, Anda bisa dalam bahasa Rusia).



DOMEN= "Domen.ru" - domain email yang akan kami pasang tanda tangannya.



Otomatisasi eksekusi



Siapkan crontab dari pengguna zimbra:



sudo su zimbra
crontab -e


Hati-hati, tugas latar zimbra sedang berjalan di crontabe Pengguna ini (antara bagian ZIMBRA_START dan ZIMBRA_END).



Kami menambahkan tugas kami di akhir file ... jangan lupa untuk meninggalkan baris kosong di akhir!



Kami meluncurkan skrip /usr/local/bin/zimbra/zm_sign_html.sh setiap hari pada pukul 6:00.



Contoh file crontab:



#
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


Kesimpulan



Itu saja untuk saat ini. Anda dapat menambahkan link ke email. Jika seseorang membutuhkannya, saya akan menambahkannya.

Tulis di kolom komentar ...



Good mood, semuanya! Dan jangan sakit!



Tautan ke artikel bekas



phas13.blogspot.com/search/label/Zimbra

wiki.zimbra.com/wiki/Setting_automatic_Default_Signature



PS: Terima kasih khusus kepada Denis Schultz (tlk234) untuk membantu dalam men-debug skrip dan bekerja dengan dokumentasi Zimbra CLI.



All Articles