Just a few notes about things you willl need to clean up sooner or later ...
First, don't define %SEND_EMAIL inside an %IF %THEN condition. Pull out the definition of the macro so it stands alone. The other logic can still call %SEND_EMAIL. That will make your logic easier to understand and debug.
Second, what is the first %RETURN statement supposed to do? Even if you solve for %IF in open code, there is no way to make a %RETURN statement valid outside of a macro definition.
Finally, beware of this comparison:
%if &Email_Address ne %then %do;
Some email addresses contain a dash. If that occurs, macro language will interpret that as subtraction and give you an error message. Safer:
%if %length(&Email_Address) %then %do;
... View more