Hi! I've been looking at how could 551 redirection be implemented in the client side. I.e.: when server responds with 551, exim would parse the error string, obtain an address, and then recurse/iterate to send the message to final recipient.
Basicaly I can think of two ways to implement it. I'm not sure which one is best (please enlighten me): - In src/transports/smtp.c, hook a check for "551" before the ones for "5xx" and "4xx" in the loop inside sync_responses(). Problem: Addresses are processed in batch, and at this point we only have a buffer with SMTP responses (correct me if I'm wrong). Therefore we can't get back to the sending routine without calling the smtp sender outselves. Perhaps we should hook our check at a lower level, closer to the smtp routine instead? - In src/transports/smtp.c, process "551" much as if it were a "4xx". Problem: We don't really want to delay the sending, but this will postpone it untill the next queue run. Also, we would have to modify the spool file in order to replace the recipient, which I suppose is a really ugly thing. Please excuse me if I said something silly. I have no expertise with Exim internals (what I said above is just my attempt at guessing at how it works). -- Robert Millan My spam trap is [EMAIL PROTECTED] Note: this address is only intended for spam harvesters. Writing to it will get you added to my black list. -- ## List details at http://www.exim.org/mailman/listinfo/exim-dev Exim details at http://www.exim.org/ ##
