Guardar archivos adjuntos de Mail.app en función del tema

3

He estado tratando de escribir un Applescript para ayudarme a guardar archivos adjuntos, pero me di cuenta rápidamente de que no tengo el conocimiento para hacer un script tan difícil. Aquí hay algunos antecedentes.

Recibimos informes de ventas diarios y manifiestos de vuelo. El formato en el tema debe ser: dd.mm.yyyy/"two letter airline code".DSR.Weight .

I.e. 30.01.2013/VS.DSR.1110KG

En el caso del manifiesto, en el mismo formato, sustituya DSR con MNFST .

I.e. 30.01.2013/VS.MNFST.1110KG .

Sin embargo, hay innumerables variaciones en el tema, y todos somos humanos, y a veces se usa , , o más / , etc. Nuestro personal es excelente y trabaja muy duro, y lo último que me necesitan es hacer es estar en su caso sobre los formatos de tema.

Por lo tanto, estaba tratando de obtener un Applescript para ver las dos cosas que están siempre en el tema. El código de dos letras de la aerolínea y la palabra DSR o MNFST/MFST/Manifest

Tenemos los siguientes códigos de dos letras, a veces en minúsculas, en mayúsculas o en una combinación.

CV VS SAA TK DHV LH

Ahora el DSR puede estar en el tema de varias maneras, no siempre está separado, es decir. 30.01.2013/VSDSR1110KG

Lo mismo se aplica para MNFST/MFST/Manifest .

Idealmente, necesito un script para trabajar en dos partes:

DSR:

  1. Compruebe el asunto para el código de vuelo y DSR
  2. Guarde el archivo adjunto .xls en el código de dos letras de / DSR / Airline
  3. Si el archivo es más reciente (se podría enviar una corrección ese mismo día / temprano a la mañana siguiente), agregue 1 , si es otro 2 etc.

I.e. 30.01.2013/VS.DSR.1110KG.xls : Macintosh HD/Users/(My username)/Dropbox/DSR/VS Es decir. 30.01.2013/CV.DSR.1110KG.xls : Macintosh HD/Users/(My username)/Dropbox/DSR/CV

Manifiesto (a veces un archivo .xls / .pdf / .zip. Varía.)

  1. Verifique el asunto para el código de vuelo y (Manifest o MNFST o MFST)
  2. Guarde el archivo adjunto .xls / .pdf / .zip en el código de aerolínea de dos letras de Manifests / Airline
  3. Si el archivo es más reciente (es decir, un archivo está en conflicto con el mismo nombre. Es posible que se envíe una corrección ese mismo día / temprano a la mañana siguiente), agregue 1 , si es otro 2 etc.

I.e. Para VS : Macintosh HD/Users/(My username)/Dropbox/Manifests/VS

Desde las 3 horas que pasé intentando esto y sin llegar a ninguna parte rápidamente, pensé que alguien podría encontrar esto como un desafío interesante, ¡y sería muy apreciado!

Mientras tanto, voy a leer sobre Applescript en mi tiempo libre, ¡una herramienta muy poderosa y un ahorro de tiempo!

    
pregunta user41766 13.02.2013 - 21:54

1 respuesta

4

Primero crea una regla que busque ANY del Manifiesto en todas las variaciones o DSR

Me gusta así:

Luegoguardaestescript(asumiendoqueestásusando10.8MountainLion.)Enlacarpeta~/Library/ApplicationScripts/com.apple.mail/

usingtermsfromapplication"Mail"
    on perform mail action with messages theMessages for rule theRule

        set codeList to {"CV", "VS", "SAA", "TK", "DHV", "LH"}
        set subFolder to ""
        set theDate to do shell script "date +%Y_%m_%d_%H%M%S"
        --set ruleName to name of theRule





        -- The folder to save the attachments in (must already exist)
        tell application "Finder" to set attachmentsFolder to ((path to home folder as text) & "Dropbox:DSR") as text

        tell application "Mail"

            repeat with eachMessage in theMessages
                set theSubject to subject of eachMessage
                repeat with i from 1 to number of items in codeList
                    set this_item to item i of codeList
                    if theSubject contains this_item then

                        set subFolder to this_item

                    end if
                end repeat
                if (count of (eachMessage's mail attachments)) > 0 then


                    try

                        tell application "Finder"

                            if not (exists folder subFolder of folder attachmentsFolder) then
                                make new folder at attachmentsFolder with properties {name:subFolder}
                            end if
                        end tell
                        -- Save the attachment
                        repeat with theAttachment in eachMessage's mail attachments

                            set originalName to name of theAttachment
                            set savePath to attachmentsFolder & ":" & subFolder & ":" & originalName

                            tell application "Finder"

                                if (exists file originalName of folder subFolder of folder attachmentsFolder) then
                                    set savePath to attachmentsFolder & ":" & subFolder & ":" & theDate & "_" & originalName
                                end if
                            end tell
                            try
                                save theAttachment in file (savePath)



                            end try
                        end repeat


                    end try

                end if

            end repeat

        end tell
    end perform mail action with messages
end using terms from

Y apunta el Run Applescript hacia él.

Si está utilizando un sistema operativo Mac anterior. Entonces deberías poder colocar el script donde quieras.

Eso es.

Todas mis pruebas han funcionado. Pero aquí es tarde y debería estar en la cama. Así que déjame saber si hay algún problema y voy a tratar de ordenar. :-)

Lo que hay que tener en cuenta es que he agregado una marca de tiempo en lugar de un número para los archivos con el mismo nombre. Es más confiable.

    
respondido por el markhunte 14.02.2013 - 02:27

Lea otras preguntas en las etiquetas