Tips Menghapus Pesan Secara Massal pada Zimbra

Posted by

Beberapa hari yang lalu, ada spam yang lolos dari pemeriksaan antispam. Isi emailnya kira-kira seperti berikut :

From: IT Admin Desk <ad.wind2@spam.bd>
Date: 5 February 2019 16.27.49 GMT+7
To: user@example.com
Subject: user@example.com Perbarui Dapatkan Informasi
Reply-To: 2017spam@gmail.com

sayang  user@example.com  ,

Kami menghapus semua akun email yang belum dikonfirmasi untuk menciptakan lebih banyak ruang untuk akun baru.

CONFIRM IDENTITAS EMAIL ANDA DI BAWAH

http://url-spam.jkl/

untuk menghindari kehilangan akun Anda

Terima kasih

Langkah yang dilakukan setelah menerima spam tersebut adalah :

  • Melakukan spam learning. Hal tersebut dilakukan untuk mengajari antispam agar menandai email tersebut sebagai spam. Apabila ada email sejenis, email dimasukkan kedalam quarantine
  • Melakukan blacklist terhadap pengirim
  • Melakukan blacklist terhadap subject ataupun body email jika perlu

Email tersebut ternyata dikirimkan pada sebagian user yang ada. Bukan hanya pada satu user saja. Beberapa user meminta email spam tersebut agar dihapus dari mailbox mereka. Karena usernya cukup banyak, maka pesan tersebut bisa dihapus via command line menggunakan script.

Script ini diambil dari Wiki Zimbra yang beralamatkan disini : https://wiki.zimbra.com/wiki/King0770-Notes-Removing-Messages-with-zmmailbox-based-on-Subject. Namun dengan sedikit penyesuaian sesuai dengan kebutuhan.

Buat script pada folder /srv/ dengan nama rm_message.sh

vi /srv/rm_message.sh

Isi dengan script berikut :
[code lang=’plain’]
#!/bin/bash
# rm_message.sh user@domain.com subject
# create temp_file prior to calling this zmprov -l gaa | grep domain.com > /tmp/temp_email

for acct in `su – zimbra -c ‘zmprov -l gaa | sort’`; do
echo “Addr” : $acct
for msg in `/opt/zimbra/bin/zmmailbox -z -m “$acct” s -l 999 -t message “from:ad.wind2@spam.bd” |awk ‘{ if (NR!=1) {print}}’ | grep -v -e Id -e “-” -e “^$” | awk ‘{ print $2 }’`
do
echo “Removing “$msg” from “$acct””
/opt/zimbra/bin/zmmailbox -z -m $acct dm $msg
done
done
[/code]
Berikan hak akses eksekusi dan jalankan script

chmod +x /srv/rm_message.sh
/srv/rm_message.sh

Script diatas akan melakukan pengecekan pada semua account dan mencari email yang dikirimkan dari user ad.wind2@spam.bd. Jika ketemu, maka email tersebut akan dihapus dengan perintah dm (deleteMessage). Script tersebut dapat dikombinasikan juga dengan subject. Tambahkan informasi “subject:subject-yang-dicari” sebelum “|awk”. Kira-kira seperti berikut :

"from:ad.wind2@spam.bd" "subject:subject-yang-dicari"

Sebaiknya hindari penghapusan berdasarkan subject saja. Karena bisa saja subject yang dicari ada yang mirip. Misalnya mencari subject “Perbarui Informasi anda” yang merupakan spam. Namun ada juga subject “Perbarui Informasi anda pada sistem katalog” yang bukan kategori spam. Maka email tersebut akan terhapus juga.

Silakan dicoba dan semoga bermanfaat 🙂

3 comments

  1. Thanks for this script is better than the original form Zimbra wiki!! Just one question, with this script, how can I delete any address from a domain, something like *@domain.com?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.