介绍
Zimbra Web Admin没有用于生成电子邮件签名的工具。铲起一堆手册后,我意识到它们都不适合我。
该任务看似微不足道,但没有立即找到直接的解决方案。希望本文能帮助某人节省大量时间和精力。
就我个人而言,这是对社区的一项贡献,是对先前使用的开发的支持。
系统要求
系统:Linux Ubuntu 18.04
Zimbra版本:Zimbra 8.8.15
HTML签名生成脚本
让我们从脚本本身开始……在下面,我将给出脚本的工作原理的解释和描述。
#!/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!"
我们会以您已知的任何方式将此脚本传输到主机。
将其放在/ usr / local / bin文件夹中...或沿此路径创建文件zm_sign_html.sh并复制/粘贴...
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
脚本说明
- 检查脚本是否正在从zimbra用户运行(CLI命令从zimbra用户执行)。
可以采取其他方式...使用runuser命令并以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”-链接到组织的徽标。
创建一个IT部门邮箱(it@domen.ru)。Zimbra具有内置的文档归档服务(Portfolio)。在“产品组合”中IT部门的框中,创建一个LOGO文件夹,并将“我们组织”的徽标放入其中。
允许访问该文件夹。
现在,可以在以下地址找到我们组织的徽标:
mail.domen.ru/home/it@domen.ru/Briefcase/Logo/tl_logo.png
SRC_TXT =“组织的徽标”-如果禁用了浏览器中的图像加载,则文本说明。
SIGN_NAME =“ Organization”-签名名称(您可以音译,也可以俄语)。
多门=“ Domen.ru”-我们将为其安装签名的邮件域。
执行自动化
从zimbra用户设置crontab:
sudo su zimbra
crontab -e
请注意,zimbra后台作业正在该用户的crontabe中运行(在ZIMBRA_START和ZIMBRA_END部分之间)。
我们将我们的任务添加到文件的末尾...不要忘了在末尾留空行!
我们每天6:00在启动脚本/usr/local/bin/zimbra/zm_sign_html.sh。
示例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
结论
目前为止就这样了。您可以将链接添加到电子邮件。如果有人需要,我会添加它。
在评论中写...
大家好!而且不要生病!
链接到二手文章
phas13.blogspot.com/search/label/Zimbra
wiki.zimbra.com/wiki/Setting_automatic_Default_Signature
PS:特别感谢Denis Schultz(tlk234),以帮助调试脚本和使用Zimbra CLI文档。