Levelező lista kezelés mlmmjadmin-nal
Az iRedMail lehetőséget biztosít levelező lista használatára, kezeléséhez mutatok pár parancsot.
Levelező listák lekérzedése
mint root
mysql \
--defaults-file=.my.cnf \
-B \
-s \
-e "use vmail;select address from maillists;"
Kivételek lekérdezése
Címek, amire nem küldünk levelet (pl.: bitrix@…, zabbix@…)
/opt/mlmmjadmin/tools/maillist_admin.py subscribers excluded@pelda.hu
Cím felvétele a kivétel listára
/opt/mlmmjadmin/tools/maillist_admin.py \
add_subscribers \
excluded@pelda.hu \
user@<domain>
Cím eltávolítása a kivétel listáról
/opt/mlmmjadmin/tools/maillist_admin.py \
remove_subscribers \
excluded@pelda.hu \
user@<domain>
Levelező lista generálás
MLMMJ_ADMIN_TOOL=/opt/mlmmjadmin/tools/maillist_admin.py
AUTH_TOKEN="--- Must be filled ---"
EXCLUDE_MAILLIST=excluded@pelda.hu
DOMAINS=()
DOMAINS+=('pelda2.hu')
LIST_NAME=levlista
function remove_all_subscribers {
/usr/bin/curl \
-X POST \
--header "X-MLMMJADMIN-API-AUTH-TOKEN: $AUTH_TOKEN" \
http://127.0.0.1:7790/api/${1}/subscribers?remove_subscribers=ALL
}
for d in ${DOMAINS[@]}
do
# remove all subcribers
remove_all_subscribers ${LIST_NAME}@${d}
SQL_QUERY=()
SQL_QUERY+=(/usr/bin/mysql)
SQL_QUERY+=("--defaults-file=~/.my.cnf")
SQL_QUERY+=("-Bs")
SQL_QUERY+=("-e")
SQL_QUERY+=("\"use vmail;select username from mailbox where domain='${d}' order by username;\"")
while read eAddr
do
echo "Checking ${eAddr}..."
haSub=$($MLMMJ_ADMIN_TOOL has_subscriber $EXCLUDE_MAILLIST "${eAddr}")
haSubA=($haSub)
if [[ "${haSubA[0]}" == "[NO]" ]]
then
echo "Add to list..."
m=($MLMMJ_ADMIN_TOOL)
m+=(add_subscribers)
m+=("${LIST_NAME}@${d}")
m+=(${eAddr})
"${m[@]}"
else
echo "Excluded from list..."
fi
done < <(eval ${SQL_QUERY[@]})
done