[apple] 아카이브 된 파일을 확장하는 첨부 파일이있는 메일을 devonthink로 가져 오는 Applescript

내 워크 플로는 Mail.app에서 들어오는 모든 문서에 태그를 지정하고 Devonthink에 넣는 것입니다. 나는 Applescript로 이것을한다. 한 가지 예외를 제외하고는 스크립트가 제대로 작동합니다. 첨부 파일에서 .zip 및 .rar 파일을 Devonthink로 이동하기 전에 확장하는 방법을 모르겠습니다. 아마도 Unarchiver 또는 다른 스크립트 가능한 아카이브 유틸리티가 필요할 것입니다. 당신의 제안에 감사드립니다. 내 스크립트는 다음과 같습니다.

property pNoSubjectString : "(no subject)"

tell application "Mail"
    try
        tell application id "com.devon-technologies.thinkpro2"
            if not (exists «class DTcu») then error "No database is in use."
        end tell
        set theSelection to the selection
        set theFolder to (POSIX path of (path to temporary items))
        if the length of theSelection is less than 1 then error "One or more messages must be selected."
        repeat with theMessage in theSelection
            my importMessage(theMessage, theFolder)
        end repeat
    on error error_message number error_number
        if error_number is not -128 then display alert "Mail" message error_message as warning
    end try
end tell

on importMessage(theMessage, theFolder)
    tell application "Mail"
        try
            tell theMessage
                set {theDateReceived, theDateSent, theSender, theSubject, theSource, theReadFlag} to {the date received, the date sent, the sender, subject, the source, the read status}
                tell application "MailTagsHelper"
                    tell theMessage
                        set theTags to the keywords
                    end tell
                end tell
            end tell
            if theSubject is equal to "" then set theSubject to pNoSubjectString
            set theAttachmentCount to count of mail attachments of theMessage
            tell application id "com.devon-technologies.thinkpro2"
                set theGroup to «class DTig»
                if theAttachmentCount is greater than 0 then set theGroup to «event DTpacd08» {name:theSubject, «class DTty»:«constant DtypDTgr»} given «class DTin»:theGroup
                set theRecord to «event DTpacd08» {name:theSubject & ".eml", «class DTty»:«constant Dtyp****», «class DTcr»:theDateSent, «class DTmo»:theDateReceived, URL:theSender, «class conT»:(theSource as string), «class tags»:theTags} given «class DTin»:theGroup
                set «class DTur» of theRecord to (not theReadFlag)
            end tell
            repeat with theAttachment in mail attachments of theMessage
                set theFile to theFolder & (name of theAttachment)
                tell theAttachment to save in theFile
                tell application id "com.devon-technologies.thinkpro2"
                    set theAttachmentRecord to «event DTpacd01» theFile given «class DTto»:theGroup
                    set «class DTur» of theAttachmentRecord to (not theReadFlag)
                    set URL of theAttachmentRecord to theSender
                    set «class tags» of theAttachmentRecord to theTags
                end tell
            end repeat
        on error error_message number error_number
            if error_number is not -128 then display alert "Mail" message error_message as warning
        end try
    end tell
end importMessage



답변

두 가지 옵션이 있습니다.

먼저 파일을 저장하고 open아래 링크에 표시된 것과 같은 명령을 사용하십시오 . 나는 그것을 시도하고 충분히 잘 작동합니다.

https://stackoverflow.com/questions/13651533/create-an-applescript-or-shell-script-to-unzip-and-rename-files

또는 do shell script명령을 사용하여 unzip명령 행 도구를 사용하여 여기에 표시된 것과 동일한 작업을 수행 할 수 있습니다.

https://discussions.apple.com/message/9062795#9062795

그러나 아카이브 내용을 추출하는 것은 쉬운 부분입니다. 보관소에 구조가 있습니까? 항상 같은가요? 여기에 문제가 생길 수 있습니다.

도움이 되었기를 바랍니다.


답변