Listing email, name, quota and status of all accounts on Zimbra
The script below lists names, email addresses, Mail Quota, and Account status grouped by domain, providing a quick overview from the command line. Example script output:
============================================
========== ezymailhosting.com ==============
Email: [email protected]
Name: EzyMailHosting
Last name: user1
Full name: EzyMailHosting
displayName: USER1 at EzyMailHosting
MailQuota: 0
Account Status: active
Script for listing names, email addresses, Mail Quota, and Account status:
#!/bin/bash
for DOMAINNAME in `zmprov -l gad`
do
echo " ===================================="
echo " ======= ${DOMAINNAME} ============="
for LISTNAME in `zmprov -l gaa ${DOMAINNAME}`
do
ALL=`zmprov -l ga ${LISTNAME}`
echo "$ALL" > /tmp/ondetail.txt
CN=`grep -i "cn:" /tmp/ondetail.txt |awk '{ print $2 }'`
SN=`grep -i "sn:" /tmp/ondetail.txt |awk '{ print $2 }'`
GIVENNAME=`grep -i "givenName:" /tmp/ondetail.txt |awk '{ print $2 }'`
DISPLAYNAME=`grep -i "displayName:" /tmp/ondetail.txt |awk '{ print $2 }'`
MAILQUOTA=`grep -i "zimbraMailQuota:" /tmp/ondetail.txt |awk '{ print $2 }'`
STATUS=`grep -i "zimbraAccountStatus:" /tmp/ondetail.txt |awk '{ print $2 }'`
echo "Email: ${LISTNAME}"
echo "Name: ${CN}"
echo "Last name: ${SN}"
echo "Full name: ${GIVENNAME}"
echo "displayName: ${DISPLAYNAME}"
echo "MailQuota: ${MAILQUOTA}"
echo "Account Status: ${STATUS}"
echo "--------------------------------------"
done
done
Or, if you want a CSV list of Email Name LastName AccountStatus, use the code below:
#!/bin/bash
for DOMAINNAME in zmprov -l gad
do
echo ” ====================================”
echo ” ======= ${DOMAINNAME} =============”
echo “Email, Name, LastName, AccountStatus”
for LISTNAME in zmprov -l gaa ${DOMAINNAME}
do
ALL=zmprov -l ga ${LISTNAME}
echo “$ALL” > /tmp/ondetail.txt
CN=grep -i "cn:" /tmp/ondetail.txt |awk '{ print $2 }'
SN=grep -i "sn:" /tmp/ondetail.txt |awk '{ print $2 }'
GIVENNAME=grep -i "givenName:" /tmp/ondetail.txt |awk '{ print $2 }'
DISPLAYNAME=grep -i "displayName:" /tmp/ondetail.txt |awk '{ print $2 }'
MAILQUOTA=grep -i "zimbraMailQuota:" /tmp/ondetail.txt |awk '{ print $2 }'
STATUS=grep -i "zimbraAccountStatus:" /tmp/ondetail.txt |awk '{ print $2 }'
echo ”${LISTNAME}, ${CN}, ${SN}, ${STATUS}”
done
done