본문 바로가기
SAS/SAS 구문사전

【SAS Statement】 FILENAME 구문, EMAIL (SMTP) 접근 방법

by 기서무나구물 2022. 1. 29.

포스팅 목차

    o FILENAME 구문, EMAIL (SMTP) 접근 방법

     


    1. 목 적 

      간이 전자 이메일 전송 프로토콜(Simple Mail Transfer Protocol, SMTP) 인터페이스를 사용하여 SAS 프로그래밍 구문에서 전자 메일을 전송한다.

     


    2. 문 법 


    FILENAME
     fileref CLIPBRD paste-buffer-name>;

    1) Fileref

      유효한 파일 참조자의 이름을 지정한다. 파일 참조자는 외부 파일 또는 디바이스 유형에 임시적으로 할당된 이름으로 8자를 초과할 수 없다.

     

    2) EMAIL

      SAS에서 전자 메일을 보낼 수 있는 방식을 지정한다. SAS를 사용하여 SMTP 서버에 메시지를 보내기 위하여, SMTP 이메일이 활성화되어 있어야 한다. 

     

    3) 'address'

      인용부호 안에 메시지를 보낼 이메일 주소를 지정한다. TO=e-mail 옵션이나 PUT 구문의 !EM-TO! 명령어에 이메일을 지정하였으면 별도로 지정할 필요가 없다.

     

    4) 이메일 옵션

      전자 메시지에 대한 속성을 지정하기 위한 옵션을 추가할 수 있다. FILE 구문에서도 유사한 옵션을 지정할 수 있는데, FILE 구문에 지정한 옵션은 FILENAME 구문에 지정한 옵션보다 우선한다.

     

    참고 : FILE 구문에서도 옵션을 지정 있다. FILE 구문에서 지정한 이메일 옵션은 FILENAME 구문에서 지정한 대응되는 이메일 옵션을 무효로 만든다.

     

    (1) ATTACH='filename.ext' | ATTACH=(‘filename.ext’ attachment-options)

       메시지에 첨부되는 파일의 물리적 이름이나 이메일 첨부 파일의 속성을 변경하기 위한 옵션을 지정한다. 다수의 파일을 첨부하기 위하여, 개별 파일들을 인용부호에 작성한 후 공백으로 구분하여서 괄호 안에 작성한다.

     

    다음은 예제이다.

     

    SAS Statements
    attach="/u/userid/opinion.txt"
    
    attach=('C:\Status\June2001.txt' 'C:\Status\July2001.txt')
    
    attach="user.misc.pds(member)"

     

    Attachment-options은 다음과 같다.

     

    • CONTENT-TYPE=’content/type’   (별칭 : CT= 와 TYPE=)

     첨부파일의 content 유형을 지정한다. 값은 인용 부호 안에 작성해야 한다. Content 유형을 지정하지 않으면, SAS 파일 이름을 근거로 적당한 content 유형을 결정하려고 시도한다. 예를 들면, content유형을 지정하지 않으면, home.html 파일 이름을 text/html content 유형으로 전송한다.

     

    별칭 : CT= TYPE=
    기본사항 : SAS 파일 이름과 확장자를 근거로 content 항목을 정의하지 못하면, 기본값은 text/plain이다.

     

    • ENCODING=’encoding-value’ 

       SAS에서 읽을 수 있는 첨부 파일의 텍스트 인코딩을 인용부호 안에 지정한다.

     

    • EXTENSION=’extension’(별칭 : EXT=)

     지정된 첨부파일에 사용 있는 다른 종류의 파일 확장자를 지정한다. 값은 인용부호 안에 작성해야 한다. 지정된 확장자는 응답자의 이메일 프로그램이 첨부 파일을 표시하기 위하여 적당한 유틸리티를 선택하는데 사용된다. 예를 들어, 아래의 첨부 파일 home.html index.htm으로 수신된다.

     

    SAS Statements
    attach=("home.html" name="index" ext="htm")

     

    참고 : extension=”” 지정하면, 지정된 첨부파일은 확장자를 따로 사용하지 않는다.
    별칭 : EXT=

     

    • NAME=’filename’ 

      지정된 첨부 파일에 사용 있는 다른 이름을 지정한다. 값은 인용부호 안에 작성해야 한다. 예를 들어, 아래의 첨부파일 home.html index.html 수신된다.

     

    SAS Statements
    attach=("home.html" name="index")

     

    • OUTENCODING = 'encoding-value’'

     전송되는 첨부파일이 최종적으로 사용하는 텍스트 인코딩을 지정한다. 값은 인용 부호 안에 작성해야 한다.

     

    제한사항 : SMTP 이메일 인터페이스는 EBCDIC 지원하지 않기 때문에, EBCDIC 인코딩 값을 지정하면 안된다.
    관련사항 : SAS National Language Support (NLS): Reference Guide Encoding Values in SAS Language Elements

     


    (2) BCC='bcc-address'

          전자 메일의 숨은 참조(blind copy) 수신되는 숨은 참조자를 지정한다. BCC필드에 나열된 사람들이 이메일을 수신한다. BCC 영역은 이메일 머리글(header) 표시되지 않기 때문에, 이메일 주소는 다른 수신자들에게 보이지 않는다. 

     

    BCC주소가 다수의 단어로 구성된 경우에는 인용부호 안에 작성해야 한다. 다수의 주소를 지정하기 위하여, 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    bcc="joe@site.com"
    
    bcc=("joe@site.com" "jane@home.net")
    
    bcc="Joe Smith <joe@site.com>"

     

    (3) CC=’cc-address’ 

    이메일 메시지를 받을 수신자를 지정하라. 이메일 주소는 인용 부호 안에 작성해야 한다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라.

     

    SAS Statements
    cc='joe@site.com'
    
    cc=("joe@site.com" "jane@home.net")
    
    cc="Joe Smith <joe@site.com>"

     

    (4) CONTENT_TYPE=’content/type’ 

    메시지 본문에 대한 내용(Content) 유형을 지정하라. 내용 유형을 지정하지 않으면, SAS 적절한 내용 유형을 결정하려고 시도한다. 값은 인용 부호 안에 작성하라.

    별칭 : CT= TYPE=
    기본값 : Text/plain

     

    (5) ENCODING=’encoding-value’ 

    메시지 본문에서 사용할 텍스트 인코딩을 지정한다. 유효한 인코딩 값에 대하여 SAS National Language Support (NLS): Reference Guide Encoding Values in SAS Language Elements 참조.

     

    (6) FROM=’from-address’ 

    전송되는 메시지 작성자의 이메일 주소를 지정한다. FROM= 기본값은 SAS 실행하는 사용자의 이메일 주소이다. 예를 들어, SAS에서 메시지를 보내는 사람과 작성자가 다른 경우에, 옵션을 사용하라. 인용 부호 안에 이메일 주소를 작성하라. 하나의 이메일 주소만 지정 있다. 이메일 주소와 저자의 실제 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라.

     

    SAS Statements
    from='martin@home.com'
    
    from="Brad Martin <martin@home.com>"

     

    필요사항 : EMAILFROM 시스템 옵션이 설정되면 FROM 옵션이 필요하다.

     

    (7) LRECL=lrecl 

    Lrecl 데이터의 논리 레코드 길이이다.

    기본값 : 256
    영향 : 대안으로, 전역(Global) 논리 레코드 길이를 지정 있다. (LRECL= 시스템 옵션)

     

    (8) IMPORTANCE=’LOW’ | ‘NORMAL’ | ‘HIGH’

    이메일 메시지의 중요도를 지정한다. 값은 인용부호 안에 작성하라. 세션 인코딩과 일치하는 언어로 중요도를 지정 있다. 그러나, 실제 메시지 머리말(hearder) RFC-2076 지정자(일반 인터넷 메시지 머리말) 규정에 따라서 영어로 작성되어야 하기 때문에 중요도는 영어로 전환 것이다.

     

    SAS Statements
    filename inventory email 'name@mycompany.com' importance='high';
    
    filename inventory email 'name@mycompany.com' importance='hoch';

     

    기본값 : NORMAL

     

    (9) REPLYTO=’replyto-address’ 

    답장 받을 사람의 이메일 주소를 지정한다. 이메일 주소는 인용 부호 안에 작성해야 한다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라.

     

    SAS Statements
    replyto='hiroshi@home.com'
    
    replyto=('hiroshi@home.com' 'akiko@site.com')
    
    replyto="Hiroshi Mori <mori@site.com>"

     

    (10) SUBJECT=subject 

    메시지의 제목을 지정하라. 제목에 특별한 문자 또는 하나 이상의 단어를 포함하면(적어도 하나 이상의 공백을 포함하면), 인용부호 안에 텍스트를 작성하라.

     

    SAS Statements
    subject=Sales
    
    subject="June Sales Report"

     

    참고 : 1 단어로 구성된 제목을 인용부호 안에 작성하지 않으면, 제목은 대문자로 전환된다.

     

    (11) TO=’to-address’ 

    이메일 메시지의 기본 수신자를 지정하라. 인용부호 안에 이메일 주소를 작성하라. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 이름을 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라.

     

    SAS Statements
    to='joe@site.com'
    
    to=("joe@site.com" "jane@home.net")
    
    to="Joe Smith <joe@site.com>"

     

    Tip : TO=지정은 ‘address’인수를 무효로 만든다.

     

     

     


    5) PUT 구문에서 EMAIL(SMTP) 접근 방법 지정

      FILE 구문을 사용하여서 출력 대상으로 이메일 파일참조자를 정의한 후에 메시지의 속성(TO=, CC=, SUBJECT=, CONTENT_TYPE=, ATTACH= 와 같은 이메일 옵션)을 변경하기 위하여 PUT 구문을 사용할 수 있다. 개별 PUT 구문에는 단지 하나의 명령을 지정해야 하고, 개별 PUT 구문에는 지정된 명령과 연관된 텍스트를 지정할 수 있다.

    예를 들어,

     

    SAS Statements
    filename mymail email 'martin@site.com' subject='Sending Email';
    
    data _null_;
       file mymail;
       put 'Hi';
       put 'This message is sent from SAS...';
    run;

     

    메시지의 속성(TO=, CC=, SUBJECT=, CONTENT_TYPE=, ATTACH= 같은 이메일 옵션) 재정의하기 위한 이메일 명령을 지정하거나, 또는 메시지 송신, 비정상적인 종료, 새로운 메시지 시작 등과 같은 작업을 수행하기 위하여 PUT 구문을 사용 있다. 개별 PUT 구문에는 단지 하나의 명령을 지정해야 하고, 개별 PUT 구문에는 지정된 명령과 단지 연관된 텍스트를 포함 있다.

     

    메시지의 속성을 변경하는 명령은 다음과 같다.

     

    (1) ‘!EM_ATTACH!’filename.ext’ | ATTACH=(‘filename.ext’ attachment-options)’

    메시지에 첨부되는 파일의 물리적 이름과 이메일 첨부 파일 지정자를 수정하기 위한 옵션을 지정한다. 물리적 이름은 운영 환경에 의해 인식되는 이름이다. 명령어와 물리적 이름은 인용부호 안에 작성해야 한다. 다수의 파일을 첨부하기 위하여, 파일 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 파일을 인용부호 안에 작성하고, 개별 파일은 공백으로 구분한다. 다음은 예제이다.

     

    SAS Statements
    put '!em_attach! /u/userid/opinion.txt';
    
    put '!em_attach! ("C:\Status\June2001.txt" "C:\Status\July2001.txt")';
    
    put '!em_attach! user.misc.pds(member)';

     

    Attachment-options 다음 사항을 포함한다.

     

    • CONTENT_TYPE = ‘content / type’

    첨부되는 파일에 대한 내용 유형(content type) 지정하고, 인용부호 안에 값을 작성하라. 만약 내용 유형을 지정하지 않으면, SAS 파일 이름을 근거하여 적절한 내용 유형을 결정하려고 시도한다. 예를 들어, 내용 유형을 지정하지 않으면, home.html filename text/html 항목 유형으로 전송된다.

     

    별칭 : CT= TYPE=
    기본사항 : SAS 파일 이름과 확장자를 근거로 내용 유형을 정의 없으면, 기본값은 text/plain이다.

     

    • ENCODING=’encoding-value’

    SAS에서 읽을 첨부 파일에 사용하기 위한 텍스트 인코딩을 지정한다. 인용부호 안에 값을 작성하라. 유효한 인코딩 값에 대하여 SAS National Language Support (NLS): Reference Guide 에서 Encoding Values in SAS Language Elements 참조하라.

     

    • EXTENSION=’extension’ 

    지정된 첨부파일에 사용 있는 다른 종류의 파일 확장자를 지정한다. 값은 인용 부호 안에 작성해야 한다. 지정된 확장자는 응답자의 이메일 프로그램이 첨부 파일을 표시하기 위하여 적당한 유틸리티를 선택하는데 사용된다. 예를 들어, 아래의 첨부 파일 home.html index.thm으로 수신된다.

     

    SAS Statements
    put '!em_attach! ("home.html" name="index" ext="htm")';

     

    별칭 : EXT=
    기본값 : TXT

     

    • NAME=’filename’ 

    지정된 첨부파일에 사용 있는 다른 이름을 지정한다. 값은 인용 부호 안에 작성해야 한다. 예를 들어, 아래의 첨부파일 home.html index.html 수신된다.

     

    SAS Statements
    put '!em_attach! ("home.html" name="index")';

     

    • OUTENCODING=’encoding-value’

    전송되는 첨부파일이 최종적으로 사용하기 위한 텍스트 인코딩을 지정한다. 값은 인용 부호 안에 작성해야 한다.

     

    제한사항 : SMTP 이메일 인터페이스가 EBCDIC 지원하지 않기 때문에, EBCDIC 인코딩 값을 지정하면 안된다.
    관련사항 : SAS National Language Support (NLS): Reference Guide "Encoding Values in SAS Language Elements" 참조.

     

    (2) ‘!EM_BCC!bcc-address’ 

    현재 지정되어 있는 숨은 참조자의 이메일 주소를 새로운 이메일 주소로 변경한다. 수신자는 !EM_TO! 또는 !EM_CC! 지정된 수신자에게는 보이지 않는다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    put '!em_bcc! joe@site.com';
    
    put '!em_bcc! ("joe@site.com" "jane@home.net")';
    
    put '!em_bcc! Joe Smith <joe@site.com>';

     

    (3) ‘!EM_CC!cc-address’ 

    현재 지정되어 있는 참조자 이메일 주소를 새로운 이메일 주소로 변경한다. 명령어를 인용부호 안에 작성해야 한다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    put '!em_cc! joe@site.com';
    
    put '!em_cc! ("joe@site.com" "jane@home.com")';
    
    put '!em_cc! Joe Smith <joe@site.com>';

     

    (4) ‘!EM_FROM!from-address’ 

    기본적으로 현재 지정되어 있거나 FROM=이메일 옵션에 의하여 지정되어 있는 전송되는 메시지 작성자의 이메일 주소를 새로운 이메일 주소로 변경한다. 명령어는 인용부호 안에 작성해야 한다. 하나의 이메일 주소만 지정 있다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    put '!em_from! martin@home.com';
    
    put '!em_from! Brad Martin <martin@home.com>';

     

    (5) ‘!EM_IMPORTANCE!LOW | NORMAL | HIGH’ 

    현재 지정되어 있는 이메일 메시지의 중요도를 대체한다. 명령어는 인용부호 안에 작성해야 한다. 세션 인코딩과 동일한 언어로 중요도를 지정할 있다. 그러나, 실제 메시지 머리말(hearder) RFC-2076 지정자(일반 인터넷 메시지 머리말-Headers) 규정에 따라 영어로 작성되어야 하기 때문에 중요도는 영어로 전환 것이다. 다음은 예제이다.

     

    SAS Statements
    put '!em_importance! high';
    
    put '!em_importance! haut';

     

    기본값 : NORMAR

     

    (6) ‘!EM_REPLYTO! Replyto-address’ 

    현재 지정되어 있는 답장을 받을 수신자의 이메일 주소를 변경한다. 명령어는 인용 부호 안에 작성해야 한다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 지정하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    put '!em_replyto! hiroshi@home.com';
    
    put '!em_replyto! ("hiroshi@home.com" "akiko@site.com")';
    
    put '!em_replyto! Hiroshi Mori <mori@site.com>';

     

    (7) ‘!EM_SUBJECT!subject’ 

    현재 지정되어 있는 메시지의 메일 제목을 변경한다. 명령어는 인용 부호 안에 작성해야 한다. 제목이 특수 문자 또는 다수의 단어(적어도 하나의 공백을 포함) 포함하는 경우에는, 텍스트를 인용부호 안에 작성해야 한다. 다음은 예제이다.

     

    SAS Statements
    put '!em_subject! Sales';
    
    put '!em_subject! "June Sales Report"';

     

    (8) ‘!EM_TO!to-address’ 

    현재 지정된 중요 수신자 이메일 주소를 새로운 이메일 주소로 변경한다. 명령어는 인용부호 안에 작성해야 한다. 다수의 이메일 주소를 지정하기 위하여, 이메일 주소 그룹을 괄호 안에 작성한다. 괄호 안에서는 개별 주소를 인용부호 안에 작성하고, 개별 주소는 공백으로 구분한다. 이메일 주소와 수신자 이름을 함께 작성하기 위하여, 꺾음 괄호(<>)안에 이메일 주소를 작성하라. 예제는 다음과 같다.

     

    SAS Statements
    put '!em_to! joe@site.com';
    
    put '!em_to! ("joe@site.com" "jane@home.net")';
    
    put '!em_to! Joe Smith <joe@site.com>';

     

    Tip : !EM_TO! 지정하면 ‘address’인수 TO=이메일 옵션이 제어된다.

     

    다음 명령어는 작업을 수행하기 위한 명령어이다.

     

    (9) ‘!EM_SEND!’

    현재 지정되어 있는 속성으로 메시지를 보낸다. 기본적으로, SAS 파일참조자를 닫으면서 메시지를 전송한다. 일반적으로, 다음 차례의 FILE 구문이 실행되거나 DATA 스텝이 종료되면, 파일참조자가 닫힌다. 명령어가 실행되면 메시지가 전송되고, 데이터 스텝의 종료 시점에 메시지가 다시 전송된다. 명령어는 조건적으로 메시지를 전송하거나 다량의 메시지를 전송하기 위하여 반복문을 사용하는 데이터 스텝 프로그램을 작성하는 경우에 유용하다.

     

    (10) ‘!EM_ABORT!’

    현재 메시지를 비정상적으로 종료한다. 일반적으로 데이터 스텝의 종료 시점에 자동 메시지 발송을 중지하기 위하여 명령어를 사용 있다. 기본적으로, SAS 개별 FILE 구문마다 메시지를 보낸다.

     

    (11) ‘!EM_NEWMSG!’

    PUT 구문 명령어를 사용하여 현재 설정되어 있는 메시지의 모든 속성을 초기화 한다.

     


    3. 범 주

    SAS 기본 구문 (데이터 접근)

     


    4. 상세 설명

    EMAIL(SMTP) 접근 방법을 사용하여 SAS에서 프로그램을 작성하여 전자 메일을 보낼 있다. SMTP 서버에 이메일을 보내기 위하여, 먼저 EMAILSYS 시스템 옵션으로 SMTP 이메일 인터페이스를 지정하고, FILENAME 구문을 사용하여서 EMAIL 디바이스 유형을 지정 후에 데이터 스텝 또는 SCL 코드에서 SAS구문을 실행하라. 이메일 접근 방법은 가지 장점이 있다.

     

    • 이메일 주소의 대형 데이터 세트를 기반으로 일부 이메일을 전송하기 위하여 데이터 스텝 또는 SCL의 로직을 사용 할 수 있다.
    • 배치 처리를 위하여 제출된 SAS프로그램의 완료 시점에 자동적으로 이메일을 보낼 수 있다.
    • 처리 결과에 따라 출력물을 첨부하여 이메일을 전송 할 수 있다.

     

    일반적으로, 이메일을 전송하는 데이터 스텝 또는 SCL 코드는 다음과 같은 구성 요소를 가진다.

     

    • EMAIL device-type 키워드를 가진 FILENAME 구문
    • 이메일 수신자, 제목, 첨부된 파일 등을 표시하는 FILENAME 또는 FILE 구문에 지정된 이메일 옵션
    • 메시지의 본문을 정의하기 위한 PUT 구문
    • 이메일 옵션(예 : TO=,CC=,SUBJECT=,ATTACH=)을 제어하거나 메시지 송신, 비정상적 종료, 새로운 메시지 시작 등의 작업을 수행하는 이메일 명령어(!EM_directive!)를 지정하기 위한 PUT 구문

     

    암호화된 이메일 비밀번호의 사용이 가능하다. 일반적인 비밀번호가 PROC PWENCODE 암호화 , 출력 문자열에는 암호화된 문자열을 식별해주는 tag 포함된다. {sas001} tag 예제이다. Tag 인코딩 (encoding) 방법을 표시한다. 비밀번호 암호화 작업은 텍스트로 구성된 비밀번호를 사용하여 바로 이메일에 접근하여 인증하는 것을 피하도록 한다. {sas”로 시작하는 비밀번호에 대하여 암호 해독 작업을 실행한다. 암호 해독이 성공하면, 해독된 비밀번호를 사용한다. 암호 해독이 실패하면, 비밀번호를 그대로 사용한다. 자세한 사항은 Base SAS Procedures Guide PROC PWENCODE 참조.

     


    5. 비교 구문

    구문명 구문 내용
    FILE 구문 PUT 구문에서 사용되는 출력 대상 파일의 이름을 지정한다. 
    FILENAME 구문 SAS 파일 참조자(fileref)를 외부 파일 또는 출력 장치와 연결한다. 이와 반대로 파일 참조자(Fileref)와 외부 파일의 관계를 해제할 수 있으며, 외부 파일 속성을 출력할 수 있다.
    FILENAME 구문, CATALOG 접근 방법  
    FILENAME 구문, CLIPBOARD 접근 방법
    HOST 컴퓨터의 클립보드에서 데이터를 읽고, 반대로 클립보드에 데이터를 작성한다. 동일하게 마우스를 사용하여서 탐색기의 Pop-up 메뉴에서 “클립보드에 복사”(Copy contents to Clipboard)를 사용하여 데이터를 클립보드에 복사할 수 있다.(Ctrl+C / Ctrl+V)
    FILENAME 구문, EMAIL(SMTP) 접근 방법 간이 전자 이메일 전송 프로토콜(Simple Mail Transfer Protocol, SMTP) 인터페이스를 사용하여 SAS 프로그래밍 구문에서 전자 메일을 전송한다.
    FILENAME 구문, FTP 접근 방법 FTP 프로토콜(protocol)을 사용하여 원격(remote) 파일에 접근하여서 파일 다운로드와 업로드 작업을 수행할 수 있다.
    FILENAME 구문, SOCKET 접근 방법  
    FILENAME 구문, SFTP 접근 방법 SFTP 프로토콜을 사용하여 원격(remote) 파일에 접근하여서 파일 다운로드와 업로드 작업을 수행할 수 있다. 
    FILENAME 구문, URL 접근 방법 URL 접근 방법을 사용하여 원격(remote) 파일에 접근하여 작업을 수행할 수 있다.

     


    6. 예 제

     

    예제1 : 데이터 스텝을 사용하여 첨부 파일을 첨부하여 이메일 전송하기

    다른 사용자에게 SAS 설정 파일 복사본을 전송하기 위하여, 다음 프로그램을 실행하여 파일을 보낼 있다. 이메일 옵션은 FILENAME 구문에서 지정된다.

     

    SAS Statements
    filename mymail email "JBrown@site.com"
       subject="My SAS Configuration File"
       attach="/u/sas/sasv8.cfg";
     
    data _null_;
       file mymail;
       put 'Jim,';
       put 'This is my SAS configuration file.';
       put 'I think you might like the';
       put 'new options I added.';
    run;

     

    다음 프로그램은 다중 응답자에게 메시지와 개의 첨부파일을 전송한다. 다음 예제에서, 이메일 옵션은 FILENAME 구문 대신 FILE 구문에서 지정된다.

     

    SAS Statements
    filename outbox email "ron@acme.com";
     
    data _null_;   
       file outbox   
          to=("ron@acme.com" "humberto@acme.com")   
             /* Overrides value in */    
             /* filename statement */   
          cc=("miguel@acme.com" "loren@acme.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 'program I ran last night.';    
       put 'It worked great!';
    run;

     


    예제2 : 데이터 스텝에서 조건 로직 사용하기

    다중 메시지 전송 수신자가 받을 메시지를 관리하기 위하여 데이터 스텝에 조건 로직을 사용 있다. 예를 들어, 서로 다른 부서의 직원에게 사용자 정의 보고서를 보내기 위하여, 다음 프로그램은 수신자가 속한 조직에 따라 이메일 메시지와 첨부파일을 구분하여 보낸다. 프로그램에서 다음 프로세스를 따른다.

     

    1.     번째 PUT 구문에서, ‘!EM_TO! 명령어는 TO 속성을 할당한다.

     

    2.     번째 PUT 구문은 !EM_SUBJECT! 명령어를 사용하여 SUBJECT 속성을 할당한다.

     

    3.     !EM_SEND! 명령어는 메시지를 보낸다.

     

    4.     !EM_NEWMSG! 명령어는 메시지 속성을 초기화한다. 수신자 마다 새로운 메시지 속성을 부여하기 위하여 메시지 속성을 초기화하는데 사용한다.

     

    5.     !EM_ABORT! 명령어는 RUN 구문이 이메일을 다시 전송하기 전에 비정상적으로 종료시켜서, 데이터 스텝의 종료 시점에서 자동적으로 이메일을 보내는 것을 막는다.

     

    SAS Statements
    filename reports email "Jim.Smith@work.com";
     
    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;

     


    예제3 : 프로시져 출력물을 이메일로 보내기

    프로시져 출력물을 전송하기 위하여 이메일을 사용 있다. 다음 예제는 이메일 메시지의 본문에 ODS HTML 결과를 첨부하는 방법을 설명한다. ODS HTML 프로시져 출력물은 RECORD_SEPARATOR(RS) 설정을 NONE 설정하여 전송되어야 한다.

     

    SAS Statements
    filename outbox email
       to='susan@site.com'
       type='text/html'
       subject='Temperature Conversions';
     
    data temperatures;
       do centigrade = -40 to 100 by 10;
          fahrenheit = centigrade*9/5+32;
          output;
       end;
    run;
     
    ods html
       body=outbox /* Mail it! */
       rs=none;
     
    title 'Centigrade to Fahrenheit Conversion Table';
     
    proc print;
       id centigrade;
       var fahrenheit;
    run;
     
    ods html close;

     


    예제4 : 이미지를 생성하여 이메일 보내기

    다음 예제는 GIF 이미지를 생성하고, GIF 이미지를 이메일 메시지로 보내는 방법을 설명한다.

     

    SAS Statements
    filename gsasfile email
       to='Jim@acme.com'
       type='image/gif'
       subject="SAS/GRAPH Output";
    
    
    goptions dev=gif gsfname=gsasfile;
    
    
    proc gtestit pic=1;
    run;

     


     


    [SAS Statement] SAS 데이터 스텝 구문 사전 목록]

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    댓글