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 <[email protected]>
Date: 5 February 2019 16.27.49 GMT+7
To: [email protected]
Subject: [email protected] Perbarui Dapatkan Informasi
Reply-To: [email protected]

sayang  [email protected]  ,

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 [email protected] 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:[email protected]” |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 [email protected]. 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:[email protected]" "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 🙂

6 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?

      1. Hi Imanudin,
        This script works great, thank you very much! I have a problem with it: what about when the domain is @*.domain.com, where “* ” is a random number?

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.