1 votos

AppleScript agrega un nuevo nombre de archivo y ruta en el correo solo cuando la extensión de los archivos es .pdf y .doc

Tengo un Mac con mac os Mojave.

este script envía un correo a múltiplos de usuario cuando alguien agregue un nuevo archivo en mi carpeta.

¿Cómo puedo agregar el nombre de archivo en el correo Sujeto y la ruta de acceso del archivo en el cuerpo del correo? ¿Cómo se puede aplicar esta acción sólo cuando la extensión de archivo son .pdf o .doc?

aquí está mi script:

property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.

on adding folder items to this_folder after receiving added_items
try
    tell application "Finder"
        --get the name of the folder
        set the folder_name to the name of this_folder
    end tell

    -- find out how many new items have been placed in the folder
    set the item_count to the number of items in the added_items
    --create the alert string
    set alert_message to ("Folder Actions Alert:" & return & return) as Unicode text
    if the item_count is greater than 1 then
        set alert_message to alert_message & (the item_count as text) & " new items have "

    else
        set alert_message to alert_message & "One new item has "
    end if


    set recipientName to "New file added"
    set recipientAddress to "user1@gmail.com, user2@gmail.com"
    set theSubject to "new file" & fileName
    set theContent to "¡Hello! new file added: pathName fileName"

    tell application "Mail"

        ##Create the message
        set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}

        ##Set a recipient
        tell theMessage
            make new to recipient with properties {name:recipientName, address:recipientAddress}

            ##Send the Message
            send

        end tell
    end tell

end try
end adding folder items to

Yo intente muchas veces para utilizar este ejemplo, pero fue imposible: Applescript para devolver el nombre del nuevo archivo añadido a la carpeta

Muchas gracias de antemano!

0voto

wch1zpink Puntos 11

Este a mi me funciona con la última versión de macOS Mojave.

He hecho algunos ajustes para usted y añadió un par de artículos al código. Usted puede necesitar ajustar un par de cosas para que se adapte mejor a sus necesidades, pero por ahora creo que el siguiente código debe poner de nuevo en la pista de la derecha:

property dialog_timeout : 30 -- set the amount of time before dialogs auto-answer.
property name_extensions : {"pdf", "doc"}

on adding folder items to this_folder after receiving added_items
    set files_added to {}
    set file_names to {}
    tell application "Finder" to set folder_name to the name of this_folder
    repeat with i from 1 to count of added_items
        set this_Item to item i of added_items
        tell application "Finder"
            if name extension of this_Item is in name_extensions then
                set end of files_added to (this_Item & linefeed)
                set end of file_names to " " & name of this_Item & " "
            end if
        end tell
    end repeat

    -- find out how many new items have been placed in the folder
    set the item_count to count of added_items
    --create the alert string
    set alert_message to ("Folder Actions Alert:" & return & return) as Unicode text

    if the item_count is greater than 1 then
        set alert_message to alert_message & (the item_count as text) & " New items have been added"
    else
        set alert_message to alert_message & "One new item has been added"
    end if

    if files_added is {} then
        activate
        display alert alert_message giving up after dialog_timeout
        return
    else
        try
            set recipientName to ""
            set recipientAddress to "user1@gmail.com, user2@gmail.com"
            set theSubject to "new file: " & file_names
            set theContent to "¡Hello! new file added: " & linefeed & linefeed & files_added

            tell application "Mail"
                ##Create the message
                set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
                ##Set a recipient
                tell theMessage
                    make new to recipient with properties {name:recipientName, address:recipientAddress}
                    ##Send the Message
                    send
                end tell
            end tell
        end try
        activate
        display alert alert_message giving up after dialog_timeout
    end if
end adding folder items to

ACTUALIZACIÓN:

En esta siguiente versión de el código actualizado, he quitado todos los de la "Pantalla de Alerta de" comandos y variables. Esta versión se enviará un correo electrónico con los nombres de todos los archivos y la ruta de los archivos. También le enviará un correo electrónico a las direcciones de la lista de destinatarios, con el nombre de los archivos y la ruta de los archivos (sólo si las extensiones de archivo .pdf o .doc)


property myEmail : "fireDevelop@gmail.com" -- Replace With Your Email Address
property sendToEmailAddress : "user1@gmail.com , user2@gmail.com"
property name_extensions : {"pdf", "doc"}

on adding folder items to this_folder after receiving added_items
    set files_added_filtered to {}
    set file_names_filtered to {}
    set files_added to {}
    set file_names to {}

    repeat with i from 1 to count of added_items
        set this_Item to item i of added_items
        tell application "Finder"
            set end of files_added to (this_Item & linefeed)
            set end of file_names to " " & name of this_Item & " "
            if name extension of this_Item is in name_extensions then
                set end of files_added_filtered to (this_Item & linefeed)
                set end of file_names_filtered to " " & name of this_Item & " "
            end if
        end tell
    end repeat

    if files_added_filtered is {} then
        try
            set recipientName to ""
            set recipientAddress to myEmail
            set theSubject to "new file: " & file_names
            set theContent to "¡Hello! new file added: " & linefeed & linefeed & files_added

            tell application "Mail"
                set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
                tell theMessage
                    make new to recipient with properties {name:recipientName, address:recipientAddress}
                    send
                end tell
            end tell
        end try
        return
    else
        try
            set recipientName to ""
            set recipientAddress to sendToEmailAddress
            set theSubject to "new file: " & file_names_filtered
            set theContent to "¡Hello! new file added: " & linefeed & linefeed & files_added_filtered

            tell application "Mail"
                set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
                tell theMessage
                    make new to recipient with properties {name:recipientName, address:recipientAddress}
                    send
                end tell
            end tell
        end try
        try
            set recipientName to ""
            set recipientAddress to myEmail
            set theSubject to "new file: " & file_names
            set theContent to "¡Hello! new file added: " & linefeed & linefeed & files_added

            tell application "Mail"
                set theMessage to make new outgoing message with properties {subject:theSubject, content:theContent, visible:true}
                tell theMessage
                    make new to recipient with properties {name:recipientName, address:recipientAddress}
                    send
                end tell
            end tell
        end try
    end if
end adding folder items to

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