win32 binary | script |
---|---|
rprint-win32-2011-04-27.zip | rprint-script-2011-04-27.zip |
제작자: 박현수
오랜 시간동안 실험/학습/진화 프로그램을 실행시킬때, 현재 작업이 어느정도 진행되었는지, 중간결과는 어떤지, 언제 끝나는지, 시간이 얼마나 지났는지 등의 정보를 알고 싶을 때가 있습니다. 이 프로그램은 이런 경우에 프로그램을 실행중인 컴퓨터가 e-mail(gmail)을 이용해서 우리에게 정보를 전달해 줄 수 있도록 합니다. console 창에서 간단하게 e-mail을 보낼 수 있으며, 몇몇 종류의 파일도 첨부할 수 있습니다. remote print문이라는 의미에서 rprint라고 이름지었습니다.
c:\> c:/rprint/rprint "제목;본문 내용 첫번째 줄;두번째 줄"
rprint-xxxx-xx-xx.zip 파일을 다운받아 원하는 장소에 압축을 해제합니다. 이 것을 실행하기 위해서는 우선 gmail계정이 필요합니다. 이 프로그램은 컴퓨터가 자신의 gmail계정을 이용해 메일을 우리에게 보내는 형태로 되어 있기 때문에 컴퓨터 전용의 gmail계정이 필요합니다. 물론 사용자 자신의 gmail계정을 사용할 수도 있지만, 관리의 편의성 등의 이유로 컴퓨터가 쓸 메일 계정을 하나 만드시길 바랍니다. google은 계정을 만드는데 주민번호가 필요 없기 때문에 별 문제는 없을 겁니다.
host = smtp.gmail.com sender = computer@gmail.com password = SENDERPASS recipient = user@naver.com
위는 rprint.ini 파일의 내용 입니다. host는 gmail의 smtp 서버이므로 변경할 필요가 없고, sender와 password는 전송할 사람, 즉 새로만든 컴퓨터의 gmail 계정의 정보를 입력합니다. 가상으로 computer@gmail.com이라고 하겠습니다. recipient에는 전송 받을 사람, 즉 사용자의 email을 입력합니다. 이 메일은 굳이 gmail을 사용할 필요는 없습니다. rprint.ini는 프로그램을 실행할 폴더에 직접 위치시키거나, c:\ 위치 시킵니다. 프로그램 실행할 폴더에 있는 ini파일이 더 우선시 됩니다.
제어판 -> 시스템 -> 고급 시스템 설정 -> 고급 -> 환경 변수 -> PATH 의 뒷부분에 ;c:\rprint 추가(다른 폴더에 설치했다면 설치한 폴더로 설정)
편리한 사용을 위해서 PATH 설정을 할 수도 있습니다.rprint가 설치된 폴더가 c:\rprint 라면 위와 같은 방법으로 PATH 설정 합니다. 설정이 완료되면 어디서나 rprint “” 형태로 실행이 가능해 집니다.
rprint "테스트 메일"
“테스트 메일” 이라는 제목의 메일을 받게 됩니다.
rprint "테스트 메일 제목;테스트 메일 내용"
“테스트 메일 제목”이라는 제목을 가지고 “테스트 메일 내용”이라는 내용을 가진 메일을 받습니다. ';'를 이용해 제목과 본문을 구분합니다. 본문을 여러 줄로 보낼때도 ';'을 이용해 줄을 넘김니다.
rprint "테스트 메일 제목;테스트 메일 내용" test.jpg
제목과 내용은 위와 같고 test.jpg라는 파일이 첨부된 메일을 받습니다. 첨부파일이 현재 경로에 없다면 경고 메시지를 메일로 받습니다.
rprint "테스트 메일 제목;테스트 메일 내용" test.jpg test.csv test.txt
제목과 내용은 위와 같고 첨부파일이 test.jpg, test.csv, test.txt인 메일을 받습니다. 첨부파일은 뒤 쪽에 계속해서 추가 가능합니다. 처리 가능한 확장자는 jpg, png, csv, txt, log 입니다. 나머지는 무시합니다. 또한 gmail의 첨부파일 용량을 초과할 수는 없습니다.
rprint "제목;내용" 1302259344 test.jpg
1302259344는 time()함수 또는 그와 비슷한 함수를 실행시켜 얻을 수 있는 1970년 1월 1일 0시 0분 0초부터 몇초가 지났는지를 나타내는 time stamp입니다. 이렇게 실행시키면 1302259344로부터 현재까지 시간이 얼마나 지났는지를 메일의 내용에 추가시켜 줍니다. 실험 시작부터 시간이 얼마나 흘렀는지, 또는 진화 한세대가 얼마나 시간이 지났는지 등의 정보를 알아보기 위해 있는 기능입니다. time stamp는 시작시간을 프로그램 내에 저장하고 있다가 실행 시킬 때 인자로 주어야 합니다. 위의 경우처럼 생략도 가능합니다.
다음은 C로 작성한 프로그램에서 사용하는 예 입니다. “, \n등의 문자를 문자열 내에 직접 삽입이 불가능하기 때문에 \”, \\n 등으로 escape 문자형태로 표현해야 합니다. 문자열을 다루기에 더 쉬운 언어들에서는 이런 과정 없이 훨씬 쉽게 사용할 수 있을 것입니다.
#include<stdio.h> int main(){ char job[] = "Test Job"; char cmd[100] = "\n"; sprintf(cmd, "rprint \"%s 작업완료;작업완료 메일\"", job); system(cmd); return 0; }