2017-10-12 50 views
0

我有一個數據集(work.employees),其中每個字段都是要發送的電子郵件的元素。示例記錄:Smith,John,[email protected][email protected]。對於每條記錄,我需要根據那裏的信息發送一封單獨​​的電子郵件。我可以發送一封帶有宏變量的電子郵件,並用電子郵件發送數據,但迭代不會發生。建議將非常感激。謝謝。在SAS數據集中爲每行發送電子郵件

+0

嗨,歡迎來到ST ack溢出。有關如何提出問題並更新您的問題的更多詳細信息,請參見[問問]鏈接 。 –

回答

0

所以你想通過SAS發送電子郵件通知?這個問題是兩個摺疊。首先,您需要確保您的SMTP服務器在SAS中正確配置。其次,你必須製作所需的郵件軟件。

對於第一位跟隨http://support.sas.com/kb/19/767.html

指導現在,你想要什麼(顯然)是解析/選擇電子郵件。我假設你只從數據集中選擇它們。

Proc sql; 
    select distinct(emails) into: resplist separated by ' ' from mail_set where emails like '%@%'; 
/*Here I'm selecting only those that have @ mark in the cells. 
You can add parser as you need. (question is a bit oddly worded.*/ 
quit; 

或者,您可以hardCode的地址。 (我建議你嘗試第一次與這個讓你知道你發送代碼工作。

%let respList="[email protected]" "[email protected]"; 


FILENAME Mailbox EMAIL &respList. 
Subject="Email delivery for you"; 
DATA _NULL_; 
    FILE Mailbox; 
    PUT "Good day,"; 
    put ; 
    PUT "Remain calm. This is a test."; 
    PUT ; 
run; 

您還可以添加SAS數據集informatin,但請記住,通過電子郵件發送垃圾郵件的東西通常是壞主意。

0

如果要發送每條記錄一個電子郵件,這是更好地使用!EM_指令在datastep。

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a002058232.htm

 
filename reports email "[email protected]"; 

data _null_;  
    file reports;  
    length name dept $ 21;  
    input name dept;  
    put '!EM_TO! ' name;  
    put '!EM_SUBJECT! Report for ' dept;  
    put name ',';  
    put 'Here is the latest report for ' dept '.' ;  
    if dept='marketing' then  
     put '!EM_ATTACH! c:\mktrept.txt'; 
    else /* ATTACH the appropriate report */  
     put '!EM_ATTACH! c:\devrept.txt'; 
     put '!EM_SEND!';  
     put '!EM_NEWMSG!';  
     put '!EM_ABORT!';  
    datalines; 
Susan   marketing 
Peter   marketing 
Alma   development 
Andre   development 
; 
run;