Hi, I am have a program that is supposed to send out different email messages based on whether a certain condition is met. I have created strings of all my variables to feed them through a do loop to send out each individual email. I have successfully created the string of variables, but can't seem to figure out how to call them in my email code. I am not sure whether I can call macro variables using a put statement in another macro. I have my code below, any help is much appreciated! proc sql noprint; select SUBJECT, EMAIL, BODY1, count(SUBJECT) into :SUBJECT separated by '|', :EMAIL separated by '|', :BODY1 separated by '|', :n from all; quit; %put subject=&subject; options emailsys=XX emailhost='XXX.XXXX.com' emailauthprotocol=none emailid="XXXXXXXXXXXXXX.com" ; options mprint; %macro email; %do i=1 %to &n; %let SUBJECT=%scan(&SUBJECT,&i,'|'); %let EMAIL=%scan(&EMAIL,&i,'|'); %let BODY1=%scan(&BODY1,&i,'|'); %macro sendemail; *write an email; filename outbox email; data _null_; file outbox to=("XXXXXX.com") subject="&EMAIL"; put "&body1"; put ' '; put 'SUBJECT:&SUBJECT'; put ' '; put 'Thanks,'; run; filename outbox clear; %mend; %sendemail; %end; %mend; %email;
... View more