QUERY30DAYS="SELECT username,pw_expires_on FROM mailbox WHERE pw_expires_on > now() + interval 29 DAY AND pw_expires_on < now() + interval 30 day"
QUERY14DAYS="SELECT username,pw_expires_on FROM mailbox WHERE pw_expires_on > now() + interval 13 DAY AND pw_expires_on < now() + interval 14 day"
QUERY7DAYS="SELECT username,pw_expires_on FROM mailbox WHERE pw_expires_on > now() + interval 6 DAY AND pw_expires_on < now() + interval 7 day"
REPLY_ADDRESS=noreply@example.com
function notifyThirtyDays(){
mysql --defaults-extra-file="$MYSQL_CREDENTIALS_FILE""$POSTFIX_DB" -B -e "$QUERY30DAYS"|whileread -a RESULT ;do
echo -e "Dear User, \n Your password will expire on ${RESULT[1]}"| mail -s "Password 30 days before expiration notication" -r noreply@eyetech.fr ${RESULT[0]};done
}
# Change this list to change notification times and when ...
for INTERVAL in 30147
do
LOWER=$(($INTERVAL-1))
function notifyFourteenDays(){
mysql --defaults-extra-file="$MYSQL_CREDENTIALS_FILE""$POSTFIX_DB" -B -e "$QUERY14DAYS"|whileread -a RESULT ;do
echo -e "Dear User, \n Your password will expire on ${RESULT[1]}"| mail -s "Password 14 days before expiration notication" -r noreply@eyetech.fr ${RESULT[0]};done
}
QUERY="SELECT username,password_expiry FROM mailbox WHERE password_expiry > now() + interval $LOWER DAY AND password_expiry < NOW() + interval $INTERVAL DAY"
function notifySevenDays(){
mysql --defaults-extra-file="$MYSQL_CREDENTIALS_FILE""$POSTFIX_DB" -B -e "$QUERY7DAYS"|whileread -a RESULT ;do
echo -e "Dear User, \n Your password will expire on ${RESULT[1]}"| mail -s "Password 7 days before expiraiton notication" -r noreply@eyetech.fr ${RESULT[0]};done
}
mysql --defaults-extra-file="$MYSQL_CREDENTIALS_FILE""$POSTFIX_DB" -B -e "$QUERY"|whileread -a RESULT ;do
echo -e "Dear User, \n Your password will expire on ${RESULT[1]}"| mail -s "Password 30 days before expiration notication" -r $REPLY_ADDRESS${RESULT[0]}
done
notifyThirtyDays # Execute the function for 30 day notices
notifyFourteenDays # Execute the function for 14 day notices
notifySevenDays # Execute the function for 7 day notices