0 votos

¿Añadir nombres de archivos adjuntos al sujeto en mi guión de Apple?

Soy un novato con el guión de la Apple. Me las arreglé para reunir un poco de script que agrega archivos seleccionados del buscador a un adjunto de correo electrónico como un flujo de trabajo de servicio. Ahora me quedé con el último número. Me gustaría añadir el nombre del archivo al asunto. Aquí está el guión de la Apple. ¿Alguien puede ayudarme?

property mailSubjectPrefix : "Datei(en) für dich: "
property subjAttNameSeparator : ", "
property attachSeparator : "*******"
property attachPrefix : "Anhänge:"

set theSubject to "Datei(en): "
set theContent to "Datei(en) für dich:"
set recipientAddress to {}

tell application "Contacts"

    set recipientAddress to "mail@mail.com"

end tell

tell application "Finder"
-- Make a list to gather the names of the selected files
set fileAliases to {}
-- Get the selection of the frontmost Finder window
set fileSelection to the selection
-- Iterate of the selection
repeat with fileItem in fileSelection
    copy the fileItem as alias to the end of fileAliases
end repeat
-- Check if the selection is not empty
if the number of items of fileAliases is 0 then
    -- Audible feedback, so the script always does something.
    beep
else
    -- Now talk to mail to create the message
    tell application "Mail"
        set newMessage to make new outgoing message at beginning with properties { content:theContent, visible:true}
        set mailSubject to {}
        -- Set a recipient

        tell newMessage
            make new to recipient at end with properties {address:recipientAddress}

        set MailSubject to fileAliases

        set oTID to AppleScript's text item delimiters
        set AppleScript's text item delimiters to subjAttNameSeparator
        set subject to mailSubjectPrefix & (mailSubject as string)
        set AppleScript's text item delimiters to oTID

        end tell
        -- Attach all the selected files
        repeat with fileAlias in fileAliases
            make new attachment with properties {file name:fileAlias} at after the last paragraph of newMessage

        end repeat

        -- Put Mail in the foreground
        activate

    end tell
end if
end tell

2voto

qarma Puntos 71

Simplemente cambia esta línea:

    set MailSubject to fileAliases

a esto:

    set mailSubject to fileAliases as string

    tell application "Finder" to get insertion location
    set text item delimiters of AppleScript to result

    set mailSubject to rest of text items of mailSubject

ADDENDUM:

Espero que no se olvide de mi observación de que el script que presenta en su pregunta contiene un montón de código redundante y/o mal formado. Funciona muy bien, por lo que no es de gran importancia más allá de la estética. Sin embargo, un script más ordenado y bien formado facilita la identificación de errores y, en el caso de los script más largos que realizan más tareas, se ejecutarán de forma más eficiente/rápida.

Así que, con esto en mente, me tomé la libertad de reescribir tu script, que espero que pueda ser útil como una herramienta de aprendizaje, o simplemente ser más fácil de llevar a cabo si quieres hacer más cambios por ti mismo.

    property mailSubjectPrefix : "Datei(en) für dich: "
    property subjAttNameSeparator : ", "
    property attachSeparator : "*******"
    property attachPrefix : "Anhänge:"

    set theSubject to "Datei(en): "
    set theContent to "Datei(en) für dich:\n\n"
    set recipientAddress to "mail@mail.com"

    -- Get the selection of the frontmost Finder window
    -- as a list of aliases
    tell application "Finder"
        set fileAliases to the selection as alias list
        set text item delimiters of AppleScript to insertion location
        set fileNames to rest of text items of (fileAliases as text)
    end tell

    -- Check if the selection is not empty
    if the number of fileAliases is 0 then return beep

    -- Now talk to mail to create the message
    tell application "Mail"
        set text item delimiters of AppleScript to subjAttNameSeparator
        tell (make new outgoing message at beginning ¬
            with properties {content:theContent, visible:true, subject:mailSubjectPrefix & (fileNames as string)})

            -- Add the recipient
            make new to recipient at end with properties {address:recipientAddress}

            -- Attach all the selected files
            repeat with fileAlias in fileAliases
                make new attachment with properties {file name:fileAlias} at after the last paragraph
            end repeat

        end tell

        -- Put Mail in the foreground
        activate
    end tell

Si tiene alguna duda que necesite aclaración sobre algún punto, no dude en dejar un comentario y me pondré en contacto con usted.

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