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

Code:
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

Code:
#!/bin/bash
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
fi
#kill unexpected bloblist file if exist
if [ -f $blobfile ]; then
    rm -f $blobfile
fi
zmblobchk --unexpected-blob-list $blobfile  start;
for i in $(cat $blobfile); do
     tmpvar1="";mbxdir="";filename="";

    tmpvar1="$(dirname $i)"
    mbxdir=${tmpvar1#$storepath}
    #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
    fi
    #do operation
    mv -v $i $savedir/$mbxdir/;

  done

have fun