So I've been working on getting better errors returned back through the lmtp and smtp mechanisms, and although the dsnuser structure has helped immensely in making it easier to keep track of deliveries on a per-address basis, it hasn't helped so much in getting those errors back out to the user.
The problem is in an assumption I made, which was that any given delivery address would have only one return code and corresponding error text. This is basically all that is allowed by the RFC's, but looking at what other mailers are doing, it's not all in the numbers. It would be very useful to also give back not just a simple explanation of the error code, but also a good message about what happened. In the specific case of a distribution list, which is what I'm most concerned about (because the other cases are straightforward and already taken care of in the current code), giving back a list of users who didn't receive the message. Or is that a bad move? Something like this: 415-Recipient <[EMAIL PROTECTED]> TEMP FAIL 415-Message exceeds quota space. The following users did not receive 415-your message because they lack sufficient space in their accounts: 415 andy, bob, jane, laura. Yes, no, maybe? This would entail adding an additional list into the dsnuser structure and some functions to format the output for the RFC's line continuation format. Aaron