Import from Zimbra to Thunderbird

This commit is contained in:
F. Y. H. 2024-12-24 17:23:07 +01:00
parent eaa9502347
commit 9bace6ecdc
Signed by: Alnotz
GPG key ID: BB5A7B6724BF531A

View file

@ -0,0 +1,46 @@
#!/usr/bin/bash
if [ ! $# = 3 ]
then
echo 'Usage : zimbra2thunderbird.sh PROFILE_DIR ARCHIVE FOLDER_NAME'
echo
echo 'PROFILE_DIR Thunderbird Profile directory'
echo 'ARCHIVE Zip over Tarball archive (Zimbra EML files)'
echo "FOLDER_NAME E-mail folder name"
exit 0
fi
declare -r ROOT_DIR="${1}/Mail/Local Folders"
declare -r TMP_DIR="/tmp/zimbra2thunderbird"
# from_line META_FILE
function from_line()
(
declare -r FILE="$1"
declare -r ADDRESS=$( grep -o '"sender":"[^,"]*' "${FILE}" | sed 's/"sender":"//;s/\s//' )
declare -r SECONDES=$( grep -o '"date":[0-9]*' "${FILE}" | sed 's/"date"://' )
declare -r DATE=$( LANG=C date -d "@${SECONDES}" '+%a %b %d %H:%M:%S %Y' )
echo "From ${ADDRESS} ${DATE}"
)
mkdir "$TMP_DIR"
cd "$TMP_DIR" || exit 1
tar -xzf "$2"
touch "${ROOT_DIR}/${3}"
mkdir "${ROOT_DIR}/${3}.sbd"
for folder in *
do
touch "${folder}.mbox"
for eml in ${folder}/*.eml
do
from_line "${eml}.meta"
cat "${eml}"
echo
done >> "${folder}.mbox"
mv "${folder}.mbox" "${ROOT_DIR}/${3}.sbd/${folder}"
done
cd || exit 1
rm -rf "$TMP_DIR"