In reply to Michael O'Neil.

Mike, I don't understand your point. Of course, you need to test each part of your code, whether it is a macro or not (I did not wrap everything in macro for illustrative purpose only). With send_email macro one can make sure that it's perfect, but still can introduce an error while invoking it (e.g. passing in incorrect parameters or parameter values such as email addresses). My point was to encourage SAS developers to build their code as a single version that works in all desired SDLC environments. The choice of configuration format (macro, text file, data set) is a matter of preference. I disagree with your characterization of the email addresses embedded in configuration code as "bad practice" - try inserting a misspelled email address into non-code configuration file, still your code will choke on it.