feat: added two mailbox scripts related to importing the mails fom old skynet (pre Jan 2023)

This commit is contained in:
silver 2023-12-14 20:13:25 +00:00
parent 882f9aa78e
commit 342e67e10c
2 changed files with 82 additions and 0 deletions

61
skynet_old_mail-import.sh Normal file
View file

@ -0,0 +1,61 @@
# 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");
# 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
cp -R $FROM/$username/* $TO_USER/
# 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"
else
# if the sub-mailbox already exists dont touch it again.
echo "Already Complete: $username"
fi
done

21
skynet_old_mail-send.sh Normal file
View file

@ -0,0 +1,21 @@
# This script is to send an email to everyone in order to create their email folder.
# would create it using doveadm but that seems like its not possible.
echo "Subject: Testing, please ignore
Testing please ignore" > email.txt
for dir in /skynet_old/mail/*;
do
username=$(basename "$dir");
if [[ $username == bogus* ]] || [[ $username == BOGUS* ]];
then
continue
fi
sendmail "$username@skynet.ie" < email.txt
echo "Complete: $username"
done