Fetch all of the archive: scp -r freefall:/local/mail/archive/*/freebsd-snapshots . Expand all the "validly" formed messages to a file: zcat $(zgrep -l 'PGP SIGNED MESSAGE' *) > ../complete.txt We only lose 2012, and we'll loose everything before 2015 later. XXX - don't use the following, doesn't decode body properly Explode the mbox to files: cat 201810* freebsd-snapshots | split -p '^From ' - snap. The stdin trick is needed so the numbering/lettering continues properly. Correct way to split the bodies off. python splitbody.py arch/complete.txt arch/snap. Bulk import, -m is used to not check if they exist till the end: for i in arch/snap.????; do sh addinfo.sh -m $i; done Clean things up and skip checking for ones before given date sh addinfo.sh -c 20180900 Copy them up to freefall: scp snapshot.* freefall:public_html/FreeBSD-snap (cd ~; tar -cf - public_html/FreeBSD-snap/snapshot.*) | ssh freefall tar -xf - FreeBSD 14.2-R has a mismatch between the announcement file name, and the download file name for BASIC-CI. So two lines are manually created for both file names, but both pointing to the same URL.