I've got a fairly large (~10,000 addresses) mailing list in a MySQL database that I send to via a php script. Some of the addresses are old or fake, however, and we get a lot of returns every time a mailing goes out. I did find a decent how-to on setting up a filtering script:

Zimbra content filter - Wiki

which I expect that I can adapt to removing bad addresses from the database. What I'm unsure about is what I should filter for. Returned mails can be labeled "Returned mail" or "Delivery failure" or "Undelivered Mail", etc. There isn't any consistency that I see. Does anyone have any suggestions on this? It's very important that only returns from the list mailings get pruned - these are bad addresses - but returns from regular email going in and out of the office are more likely to be the result of a down server or something similarly benign.