2 votos

Applescript para importar correo con archivos adjuntos en devonthink que ampliaría los archivos archivados

Mi flujo de trabajo es etiquetar y poner todos los documentos entrantes de Mail.app en Devonthink. Esto lo hago con Applescript. script me funciona bien con una excepción - no sé cómo hacer que expanda los archivos .zip y .rar en los adjuntos antes de moverlos a Devonthink. Probablemente requeriría Unarchiver o alguna otra utilidad de archivo scriptable. Agradecería sus sugerencias. Mi script está abajo.

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

1voto

SPRBRN Puntos 1008

Veo dos opciones:

Lo primero es guardar el archivo y utilizar simplemente la función open comando como se muestra en el enlace de abajo. Lo he probado y funciona bastante bien.

https://stackoverflow.com/questions/13651533/create-an-applescript-or-shell-scriptpara-descomprimir-y-renombrar-archivos

Como alternativa, puede utilizar un do shell script para utilizar el unzip para hacer lo mismo, como se muestra aquí,

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

Pero extraer el contenido del archivo es la parte fácil. ¿Tiene el archivo una estructura? ¿Será siempre la misma? Aquí es donde puedes tener problemas.

Espero que esto ayude.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X