EzyMailHostingAdministration

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

EOF.← Back to articles