thunderbird copy old messages from other dirs
Is there a known documented way to copy messages from backup folders into the cur folder and have them not make a mess of the dates. What I see is if I copy several year old messages to the cur folder on an ubuntu box the massages when viewed on an android phone appear out of order. I tried deleting the dovecot index and cache files and restarting the service, I also tried running these 2 scripts I found. I added some echoes to see what was occurring. Still, messages appear out of order and some do not appear at all on the droid.
I tried copying the actual message files out of various cur dirs and still some were very out of date. The second script seemed to be adjusting the dates of the files properly, but I am not sure what android gmail actually uses to sort.
#!/bin/bash
for i in ls /home/brian/Maildir/cur/
do
# Find the date field and then remove up to the first space (Date: )
DATE=$(grep '^Date:' $i | head -1 | cut -d' ' -f1 --complement)
# Create a timestamp from the date above STAMP=$(date --date="$DATE" +%Y%m%d%H%M)
# touch the file with the correct timestamp touch -t $STAMP $i
echo "$i stamped" echo "$DATE" echo "$STAMP"
done
#!/bin/bash # Fix emails with bad timestamps in a maildir # This script reads the date from the email header and set its UNIX timestamp and renames it with the proper date # e.g. this: # dec. 05 2017 1512499812.M908995P21566.ip-111-11-11-11,S=16331,W=16746:2,S # becomes that (the email Date header is "Date: Tue, 22 Oct 2013 10:07:21 +0100"): # oct. 22 2013 1382432841.M908995P21566.ip-111-11-11-11,S=16331,W=16746:2,S
cd "/home/brian/Maildir/cur";
for i in ls 1482809425.M277770P17438*
do
echo "$i"
# We extract the date from the email headers
DATE=$(grep '^Date:' $i | head -1 | cut -d' ' -f1 --complement)
# We compute a touch-compatible timestamp as well as the real timestamp TOUCHSTAMP=$(date --date="$DATE" +%Y%m%d%H%M) TIMESTAMP=$(date --date="$DATE" +%s)
# We set the file timestamp touch -t $TOUCHSTAMP $i
# We rename the file with preprending timestamp newfilename="$TIMESTAMP.${i#*.}" mv "$i" "$newfilename" echo "$newfilename" echo "******" done
participants (1)
-
Brian