Just in case someone needs it ife made a little dirty script to cleanup unexpected blobs.

since they arent referenced in the database anymore it SHOULD be safe to move em away.
of course do DB integrity check first
also do a

zmblobchk --incorrect-revision-rename-file
First. Use it only if you know what youre doing, no Guarantes here.

What does it do:
it uses zmblockchk to generate a list of unexpected blobs
then we create a mirror directory structure in a safe path
then it moves all the unxpected there - if something is wrong you still have the backup

WARNING dont use it in HSM or something, its very simple it just expect usual storage

Adjust the global vars as you need em
you may notice i reset every variable i use in the loop, shouldnt be nessesary but since this is a very touchy operation we do i just wanted to be dam shure

blobfile="/storage/archiv/unexp-blobs.lst #listfile name and path to generate"
savedir="/storage/archiv/unexpected-blobs" #full path to your archive directory, structure will be created under it
storepath="/opt/zimbra/store/0/" #path to our storage where will find our mailbox directorys
#make savedir if not exist
if [ ! -d "$savedir" ]; then
    mkdir -p $savedir
#kill unexpected bloblist file if exist
if [ -f $blobfile ]; then
    rm -f $blobfile
zmblobchk --unexpected-blob-list $blobfile  start;
for i in $(cat $blobfile); do

    tmpvar1="$(dirname $i)"
    #filename=$(basename $i)
    echo $savedir/$mbxdir/$filename
    #create target dir if not exist the dirty way
    if [ ! -d "$savedir/$mbxdir" ]; then
        mkdir -p $savedir/$mbxdir
    #do operation
    mv -v $i $savedir/$mbxdir/;


have fun