BookmarkSubscribeRSS Feed
Leo9
Quartz | Level 8

I am trying to send email from SAS and everything is working fine and as intended when I type my actual pwd in the SAS code using EMAILPW = option. Since I do not want to use my actual pwd in the program, I created an encoded pwd using PWENCODE procedure and stored it in the file with name 'pwfile'

 

1) Here is the first code to create the encoded pwd

 

filename pwfile 'Z:\Private\pwd\pwfile.txt';
proc pwencode in='pwd' out=pwfile;
run;

 

Now I am using code below to use this encoded pwd but I keep on getting login failure error.  Basically, SAS is not recognizing the encoded pwd correctly (as intended). 

 

Here is the second part for email. 

 

2) 

filename pwfile
'Z:\Private\pwd\pwfile.txt';
options symbolgen;
 
data _null_;
infile pwfile truncover;
input line :$64.;
call symputx('dbpass',line);
run;
 
options
  emailsys=smtp 
  emailauthprotocol= plain
  emailid = 'user@xyz.com'
  emailhost='smtp.office365.com'
  emailpw = "&dbpass"
  emailport=587
;
 
options emailhost=
 (
   'smtp.office365.com'  port=587
   STARTTLS  auth=login 
   id='user@xyz.com'
    pw="&dbpass" 
 )
;
 
/* Send email */
filename mymail email
    to="user@xyz.com"
attach = "Z:\Private\pwd\test.docx"
    subject="test";
 
data _null_;
    file mymail;
    put "this is test email";
run;
 
filename mymail clear;

 

Please provide any suggestions to correct this error. 

 

2 REPLIES 2
Patrick
Opal | Level 21

For debugging purposes:
1: Run your program with code as simple as possible using your clear text password. Once that works:

2: Only replace the clear text password with the encoded version (not passed via a macro variable) and run again. Does this work or already fail?

Kurt_Bremser
Super User
Instead of taking the detour through an external file, use the automatic macro variable _PWENCODE in your EMAILPW option. And do not use quotes around it.

Catch up on SAS Innovate 2026

Dive into keynotes, announcements and breakthroughs on demand.

Explore Now →
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1648 views
  • 0 likes
  • 3 in conversation