Mac에서 단체 문자/iMessage 보내기

AppleScript를 이용해서 Mac에서 단체 문자/iMessage 를 보낼 수 있습니다.

저는 그냥 제가 필요한 것만 개발해서 그 때 그 때 사용하는 생활개발자라

코드가 최적화 되어 있지도 않고 깔끔(?)하지도 않지만 다른 분들에게도 도움 되셨으면 하고 올립니다.

저는 그냥 이정도로 만족해서 잘 사용 중인데 존잘들께서 많이 고쳐주시리라 믿습니다.

AppleScript 등록하는 상세한 설명은 하단에 있습니다.

이 페이지는 iPhone 사용자가 맥에서 Messages앱을 이용해서

SMS, iMessage를 모두 수신/송신 이용한다는 걸 기본으로 하고 작성되었습니다.

아래는 전화번호 파일을 이용해서 SMS / iMessage를 보내는 source 입니다.

on run {input, parameters}
    
    set listOfShows to {}
    set Shows to paragraphs of (read POSIX file "/Users/sel2/tel2.txt") -- 사용자 홈 밑에 바로 전화번호 정리되어 있는 txt 파일이다. 
    repeat with nextLine in Shows
        if length of nextLine is greater than 0 then
            copy nextLine to the end of listOfShows
        end if
    end repeat
    
    set listdata to listOfShows
    
    display dialog the (count of listdata) --디버깅 listdata에 저장된 아이템 수 확인
    
    set textMessage to "-모임일시 : 12/24 18시 -장소 : 달나라 호프집 감사합니다. "
    run application "Messages"
    
    tell application "Messages"
        repeat with i from 1 to the count of listdata
        
            set this_item to item i of the listdata
        
            send textMessage to buddy this_item of (service 1 whose service type is iMessage)   -- iMessage 사용
            
            --send textMessage to buddy this_item of service "SMS"  --SMS로 보낼 때 사용 	
            
        end repeat
    end tell
    
    return input
end run

아래는 clipboard(메모리에 저장된 것) 를 활용하여 SMS / iMessage를 보내는  source 입니다.

on run {input, parameters}
    
    set listContents to get the clipboard
    
    set delimitedList to paragraphs of listContents
    
    --set AppleScript's text item delimiters to {return, ","}  위의 것을 이하 2줄로 대체 가능
    --set delimitedList to every text item of listContents
    
    set textMessage to "-모임일시 : 12/24 18시 -장소 : 달나라 호프집 감사합니다. "
    
    run application "Messages"
    
    tell application "Messages"
    
        repeat with phone_number in delimitedList
            
            set targetBuddy to phone_number as string
        
            send textMessage to buddy targetBuddy of (service 1 whose service type is iMessage)
            --send textMessage to buddy targetBuddy of service "SMS
            
            delay 0.5
            
        end repeat
    end tell
    
    return input
    
end run

위의 Apple Script를 만드는 방법과 사용하는 방법은 아래와 같습니다.

Application 에서 Automator (오토메이터) 실행합니다.

app

문서 종류 중에 Service를 선택합니다.

choose

왼쪽에서 검색을 script로 해서 [Run AppleScript] 선택하고 우측 화면으로 Drag & Drop 합니다.

p1

화면에 default 나온 내용을 모두 지우고…

p2

위의 소스로 채워 넣습니다.

src

그리고 ctrl+s 를 눌러 저장합니다.

save

Clipboard 로 처리하는 Apple Script는 아래와 같은 방법으로 실행하면 됩니다. (clipboard 소스는 ,로 전화번호 구분하는 것까지 추가함)

원하는 전화번호를 선택해서 ctrl+c 해서 클립보드에 넣고 마우스 오른쪽 버튼 누르고

Services – [clipboard_sms]  (저장한 이름) 선택합니다.

usage

terminal 창을 주로 사용하는 이유는  단지 제가 vi 에디터가 제일 편해서이고

Drag 선택만하면 자동으로 clipboard에 복사되어 보내기 쉽기 때문입니다.

(텍스트에디터를 사용할 경우 필요한 전화번호들을 선택하고 ctrl+c 해서 clipboard에 복사하는 작업이 추가적으로 필요합니다.)

File의 전화번호를 처리하는 AppleScript도 외와 같은 방식으로 만들면 되고

그냥 Apple Script 열어서 실행 버튼(Play모양버튼) 눌러서 실행하면 됩니다.

(이 경우 txt 파일은 1줄에 1개의 전화번호만 있고 엔터로 구분됩니다.)

이상으로 Mac에서 단체 문자/iMessage 보내는 방법이었습니다.

연말 모임 등 모임 많으실텐데 아무쪼록 많은 도움 되시길…

감사합니다.