69 lines
No EOL
1.7 KiB
Bash
69 lines
No EOL
1.7 KiB
Bash
# This script is to move all teh old mail into a subfolder and to scribe the user to that folder (so it pops up in their mail client)
|
|
# This needs to be run on the mailserver else sendmail and doveadm wont be available
|
|
|
|
echo "Subject: [Skynet] Old emails restored
|
|
Hi all,
|
|
|
|
All the old emails from Skynet prior to Jan 2023 that were on the server have been restored to this folder.
|
|
|
|
Brendan." > email.txt
|
|
|
|
|
|
FROM=/skynet_old/mail
|
|
TO=/var/vmail/skynet.ie
|
|
MAILBOX="skynet_old"
|
|
|
|
|
|
for dir in $FROM/*;
|
|
do
|
|
username=$(basename "$dir");
|
|
|
|
if [ -z "$(ls -A $FROM/$username)" ]; then
|
|
rm -rf $FROM/$username
|
|
continue
|
|
fi
|
|
|
|
# a few usernames are bogus, ignore these
|
|
if [[ $username == bogus* ]] || [[ $username == BOGUS* ]];
|
|
then
|
|
continue
|
|
fi
|
|
|
|
# should only deal with folks who got mailbox created, did ye run skynet_old_mailbox-send.sh ?
|
|
if [ ! -d "$TO/$username" ]; then
|
|
echo "Fail: $TO/$username does not exist."
|
|
continue
|
|
fi
|
|
|
|
# we want to put teh main into a sub mailbox
|
|
TO_USER="$TO/$username/.$MAILBOX"
|
|
|
|
if [ ! -d "$TO_USER" ]; then
|
|
# if it doesnt exist, create it and do the rest of this script.
|
|
mkdir $TO_USER
|
|
fi
|
|
|
|
# from https://askubuntu.com/a/483192
|
|
mv $FROM/$username/{*,.[^.]*,..?*} $TO_USER/
|
|
|
|
# if empty
|
|
if [ -z "$(ls -A $FROM/$username)" ]; then
|
|
rm -rf $FROM/$username
|
|
fi
|
|
|
|
# set proper permissions
|
|
chmod -R 600 $TO_USER/
|
|
chmod -R u+X $TO_USER/
|
|
|
|
# change owner to the mailserver
|
|
chown -R virtualMail:virtualMail $TO_USER/
|
|
|
|
# subscribe the user to the mailbox show it shows up
|
|
doveadm mailbox subscribe -u "$username@skynet.ie" $MAILBOX
|
|
|
|
# this pops a new mail in that mailbox
|
|
sendmail "$username+$MAILBOX@skynet.ie" < email.txt
|
|
|
|
echo "Complete: $username";
|
|
|
|
done |