São necessários 2 scripts para a estruturação da carta. O primeiro é o que faz a leitura dos logs do webmail e verifica a todo minuto a presença do comando CreateAccountRequest.
Caso encontre o comando, ele acionará o segundo script, informando a conta foi criada. O segundo script é o responsável por inserir um e-mail fictício na caixa de e-mail do cliente.
Os scripts estão no diretório /opt/zimbra/store.
Seguem abaixo os scripts comentados.
tail -fn0 /opt/zimbra/log/audit.log | \ #responsável por ler o arquivo de log em tempo real
while read line ; do #repetir a leitura linha por linha
echo "$line" | grep "CreateAccountRequest" #mostrar apenas se a linha tiver o comando CreateAccountRequest
if [ $? = 0 ] #verifica se o ultimo comando foi bem sucedido (verifica se tinha o create account)
then
#email=$(echo $line | sed s/\;//g | cut -d']' -f3 | awk '{print $4}' | cut -d'=' -f2)
email=$(echo $line | sed s/\;//g | cut -d'=' -f9 | awk '{print $1}') #seleciona apenas o email
#nome=$(echo $line | sed s/\;//g | cut -d']' -f3 | awk '{print $7}' | cut -d'=' -f2 )
nome=$(echo $line | cut -d'=' -f11 | awk -F\; '{print $1}') #seleciona apenas o nome do cliente
# echo $email
/opt/zimbra/store/insertmail.sh $email
#chama o segundo script e envia o e-mail junto
fi
done
#./insertmail.sh teste@mail.com
/opt/zimbra/bin/zmprov ma $1 zimbraPrefMailTrustedSenderList "$1" #define a conta do cliente como confiável
sed s/n1cki/$1/g /etc/scripts/sample > /etc/scripts/introductory #adiciona o cliente como sender em um e-mail padrão
/opt/zimbra/bin/zmmailbox -z -m $1 addmessage -F u "/Inbox" "/etc/scripts/introductory" #insere o e-mail alterado na conta do cliente.
O arquivo sample foi criado em formato .mbox para ser o padrão de mensagem de e-mail.
É necessário que a seguinte linha seja adicionada ao crontab.
@reboot root /opt/zimbra/store/readlog.sh &