01-17-2014 02:08 PM
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=("email@example.com")
put "mail sent successfully"
Thanks in advance
01-17-2014 08:38 PM
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.
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.
01-18-2014 05:13 AM
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 lexjansen.com for papers on log scanning. My favorite approach is described in http://www.nesug.org/proceedings/nesug01/cc/cc4008.pdf , 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.