When I first created ListMail I used a method of embedding the message and user IDs in the headers of the email. When a message bounced, I simply read the header and could tell exactly which message the user bounced on. This, however, proved to be only about 50% effective, with some receiving mailer software disposing of the headers. As a result I removed the feature and installed the new threshold system.
So how do we determine which message, exactly, was sent upon bounce (especially with text-only messages)? We can't really... unless there's something I'm missing (I've heard of some pretty creative approaches!) We *could* try hiding the ID in another header that isn't as readily discarded but this would likely be against standards.
The only way I see to accurately report bounces, etc. is for ListMail to be it's
own SMTP server. That is, ListMail would open up connections to receiving mail servers, send email, and directly receive 'errors' for processing. This is likely to be much slower than using a finely-tuned well-known SMTP software, as a queue-system must most likely be developed, refined, etc. There is also the possibility that there are widespread limits on socket connections initiated from PHP. This would be ideal, though, as a "live" status of each and every user could be maintained.
The other option is for ListMailPRO to validate email addresses separately, such as on signup, etc. and try to keep the list as clean as possible. You would then basically
know that all users on your list have existing mailboxes. This may not detect over quota boxes although, then again, it may! A similar queue system and problems with PHP socket connections could be an issue here, too, but at least it wouldn't slow down mailings.
DW