애플 스크립트 만세! (이메일 자동 전송) mac

osx 에서 애플 스크립트가 대단히 강력한 것은 알고 있었지만.. 다른 무엇보다도 어디다 쓸 지 몰라서 안써오고 있었다. 

그러다가 쓸 일이 생겼으니.. 지금 하고 있는 연구상 약 1600명 정도의 사람들에게 이메일을 보내야 할 일이 생겼다. bcc를 단체로 걸면 스팸 직빵이고, 학교는 학교 밖으로는 php mail() 로 메일 전송을 막아두고 있으니, 어떻게든 학교 웹메일로 한땀한땀 메일을 보내야 할 상황.. 고민하다가 생각난게 Mail.app에 메일 리스트를 txt 로 넘기고 순차적으로 보내는 스크립트였다. 

기본적으로 내가 써야 할 변수명이 뭔지 궁금하면 이 링크를 참고하자. 매우 큰 도움이 되었다. 

그밖에 stack overflow 등 많은 도움을 받았는데, 

텍스트파일의 라인을 List 객체로 만드는 것은 여기에서. 

리스트에서 메일을 보내는 것은 링크를 잊었다.. -0-;; 

일단 이렇게 여러 사람들의 도움을 받아 아래와 같은 스크립트를 만들어 컴파일(커맨드+K), 실행(커맨드+R)을 하니 5시간 정도에 걸쳐 1600여개의 메일을 보냈다. 다만, 많은 SMTP들이 지나치게 짧은 시간에 많은 메일을 보내면 블락하니 조심하시길. 


-------스크립트 코드: 시작---

property theSender : "보내는@쪽.이메일.주소"

property theSubject : "여기에는 제목을 넣읍시다. "

property theContent : "안녕하세요?


메일 내용을 이런 식으로 죽죽 적어주면 됩니다. 


plain text 말고도 리치 텍스트 포맷이나 html 등으로도 보낼 수 있는 모양인데, 전 급해서 그냥 텍스트로 보냈습니다. 


그럼 안녕!


z0nam 드림.

"


set mailList to {}

set lineReader to paragraphs of (read POSIX file "/메일/리스트가/있는/파일.txt")

repeat with nextLine in lineReader

if length of nextLine is greater than 0 then

copy nextLine to the end of mailList

end if

end repeat


choose from list mailList


tell application "Mail"

set theSMTPServer to smtp server of account "내 SMTP 서버 텍스트 식별자"

properties of the theSMTPServer

repeat with i from 1 to count of mailList

set email to make new outgoing message with properties {visible:true, subject:theSubject, content:theContent, sender:theSender}

tell email to make new to recipient with properties {address:item i of mailList}

send email

end repeat

end tell


----스크립트 코드: 끝 ----


덧글

  • 밀리네스 2012/12/04 11:49 # 답글

    확실히 어플리케이션 자체를 스크립트로 다룰수 있다는건 꽤나 강력한 기능이죠
  • 천하귀남 2012/12/04 14:30 # 답글

    윈도우도 파워쉘이라는 강력한 셀이 있는데 자료가 별로 없어서 쉽게 접근을 못하겠더군요.
    윈도우쪽도 이메일 관련으로 찾아 봐야겠습니다. ^^
  • zonam 2012/12/04 15:43 # 답글

    파고들면 상당히 많은 일을 할 수 있을 것 같은데, 일단 목적이 분명해야 파고들게 되는 것 같습니다. 애플 스크립트는 자료가 풍부해서 상대적으로 쉽게 해결할 수 있었습니다.
댓글 입력 영역



twitter

Twitter

MathJax