Sending Email from within SAS and other options...
FILENAME Statement EMAIL (SMTP) Access Method allows you to send electronic mail programmatically from SAS using the SMTP (Simple Mail Transfer Protocol) e-mail interface available at your site.
FILENAME Statement EMAIL (SMTP) Access Method allows you to send electronic mail programmatically from SAS using the SMTP (Simple Mail Transfer Protocol) e-mail interface available at your site.
But before you process the email code below check the values for the system options using Proc options for EMAILAUTHPROTOCOL, EMAILHOST, EMAILPORT, EMAILID, EMAILPW for your site…They have to have appropriate values for your code to work.
Read more about them @ System Options That Control SMTP E-Mail.
Read more about them @ System Options That Control SMTP E-Mail.
proc options group=email; run;
|
The Log generated…
59 proc options group=email; run; |
SAS (r) Proprietary Software Release 9.1 TS1M3 |
EMAILAUTHPROTOCOL=LOGIN |
Identifies the SMTP e-mail authentication protocol |
EMAILHOST=xxx.xx.xx.xxx |
SMTP server host for email access method |
EMAILID=xxxxxx From E-mail address, log in id, or profile for use with underlying e-mail |
system |
EMAILPORT=25 Port number for SMTP server for email access method |
EMAILPW=xxxxxxxx Used by the E-mail Access Method and Send menu item to set the email session |
login password for the underlying e-mail system |
EMAILDLG=native Used by Send menu item to set the email dialog interface. |
EMAILSYS=smtp Used by E-mail Access Method and Send menu item to set the interface type with |
underlying e-mail system. |
Try the following email example for sending an email using SAS data step…replace emails and the attachments as you wish…This example has the most common options that you might use….Please look at the SAS examples in the References (5-7) below for some more advanced methods….
filename
outbox email "sastechiesblog@gmail.com";
data
_null_;
file
outbox
to=("sastechiesblog@gmail.com"
"info@sastechies.com")
/* Overrides value in
filename statement */
cc=("info@sastechies.com"
"someone@mail.com")
subject="My SAS
Output"
attach=("C:\sas\results.out"
"C:\sas\code.sas")
;
put
'Folks,';
put
'Attached is my output from the SAS';
put
'It worked great!';
run;
Here is another way of sending emails using SAS X command in a Unix Environment that has the mailx utility…Sometimes it might just better to use the native operating system utilities rather than using SAS Filename Email Statement…
Here’s a macro that does that for you…
%macro
SendEmail;
/*Write the
contents to a file */
data _null_;
file "&emailfile"
lrecl=256;
%emailbody;
run;
/* %put to=&to
cc=&cc subject=&subj attach="&attach"; */
/*use the X command and
invoke the Unix mailx command */
X "(cat
&emailfile;) | mailx -s ""&subj""
&to –c &cc";
X " if [[ $? -ne 0
]] then echo `date`" "Failed to send email to
&to" "else rm ~/&emailfile
fi";
%mend
SendEmail;
%let
subj=Hey SASTechies;
%let
to=sastechiesblog@gmail.com;
%let
attach=;
%let
cc=;
%let
emailfile=~/email.dat; /* path to the temporary file at home directory
(ie. ~) */
%macro
emailbody;
PUT "This is a test
message from SASTechies";
PUT "This test mail
has been generated from SAS Data Step using Native Unix Mail command";
%mend
emailbody;
%SendEmail;
A brief explanation here…
Enter your email/attachment/subject in the macro variables…the &emailfile is a temporary file that SAS writes to compile the email body…This is later deleted if SAS was successful in sending the email…
Enter your email/attachment/subject in the macro variables…the &emailfile is a temporary file that SAS writes to compile the email body…This is later deleted if SAS was successful in sending the email…
X "(cat &emailfile;) | mailx -s ""&subj"" &to –c &cc";
|
Check the unix man page screenshot below for more options…
Other References
1. http://support.sas.com/techsup/technote/ts605.html
2. http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a002058232.htm
3. System Options That Control SMTP E-Mail
4. Statements That Control SMTP E-mail
5. Using Conditional Logic in a DATA Step
6. Sending Procedure Output in E-mail
7. Creating and E-mailing an Image
2. http://support.sas.com/onlinedoc/913/getDoc/en/lrdict.hlp/a002058232.htm
3. System Options That Control SMTP E-Mail
4. Statements That Control SMTP E-mail
5. Using Conditional Logic in a DATA Step
6. Sending Procedure Output in E-mail
7. Creating and E-mailing an Image
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.