
Finally, after finding fragments of the necessary code hither and yon across the aether, I pieced together the steps necessary to kill duplicate messages in Mail.app. I keep winding up with multiple copies of old messages in Mac OS X (Panther) Mail when, for some reason, either the server or the mail app itself decides it's time to re-download hundreds of previous emails every month or so.
The example here partially fixes a broken script in a comment on Macosxhints.com, but I was still having trouble with it. Finally, this is what I came up with that seemed to work.
(For the love of pete, back up all of your mail before doing anything like this. Attempt this at your own risk, I disavow all responsibility for lost data, et cetera.)
Create a shell script wherever it is you like to put shell scripts, say /usr/local/bin, and name it something like maildedupe.sh. Be sure to chmod so as to be executable. In the script, put the following:
#!/bin/sh echo "Deduping $1..." formail -D 1000000 idcache '$1.ztmp' && mv '$1.ztmp' '$1' rm idcache
This is basically the same as Jeremy's script linked above, with a couple of improvements:
To auto-run this script an all of your mailboxes automagically (You did back them up, right?), go to the terminal, and type
cd ~/Library/Mail
Then type:
find . -name 'mbox' -exec /usr/local/bin/maildedupe.sh {} \;
All of the affected messages will suddenly appear as being unread, but at least you won't have more than one copy of each any more.