DATA Step, Macro, Functions and more

track email

Posts: 63

track email

Hello Everyone!

While sending the mail to the sender, it is not possible to identify whether the mail has already reached or not.Is there any option to track it.


is it possible  that if error is found in the log file, then one mail will automatically comes to sender saying that the mail has not been transmitted (with attached log file).

and if not found, also mail comes with message showing that the mail has been send successfully.

FILENAME Mailbox EMAIL   from=("")



put "mail sent successfully"


Thanks in advance

Respected Advisor
Posts: 4,736

Re: track email

You're handing over your email to the mail server. Once the mail server has accepted it you're out of the equation.

It is also not guaranteed that the receiving mail server sends a confirmation that you've used a valid email address and it most certainly doesn't send any information whether the receiver has opened the email or not.

Bounce message - Wikipedia, the free encyclopedia

So maximum you could achieve is get some kind of admin access to the sending mail server and check the send status of emails - but that's only one more step and won't give you the full picture.

Posts: 1,457

Re: track email


For second part of your question, one way to do this would be to use a log scanning macro which would read the log for any errors/warnings/bad notes and create a macro variable indicating if the log scan passed (no errors found) or failed.

So something like:

%macro EmailReportIfCleanLog(...) ;


%if &LogScanResult=PASS %then %do;

  %* email report to user ;

  %* email programmer that program ran fine;


%else %if &LogScanResult=FAIL %then %do;

  %* email programmer that program failed;



You can search for papers on log scanning.  My favorite approach is described in , but unfortunately they couldn't share the full code in the paper.

If you go this approach, and want to be sure the programmer gets an email even when there are errors in the log, you have to manually recover from SYNTAXCHECK mode.  So if SAS set obs=0 due to some error in your main code, I  *think* you need to set OBS=max REPLACE NOSYNTAXCHECK at the top of your log checker.

Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation