Envío de imágenes automáticamente por correo electrónico a una dirección de correo electrónico específica

Tengo un pequeño problema. Quizás puedas ayudarme con eso. Estoy tomando muchos retratos para un cliente. Como 200 cada día. Tengo que enviar por correo electrónico cada uno de los retratos por correo. Una galería con todos los retratos en uno no está permitida por motivos de privacidad. El cliente definitivamente quiere correos electrónicos. Traté de programar una acción de Applescript/Automator para hacer esto automáticamente.

Mi plan es nombrar todos los archivos así: name@client.com_2847.jpg y dejar que la acción haga el resto de la magia.

Funciona, excepto que no puedo extraer la dirección de correo del archivo jpg.

¿Cómo extraigo el correo electrónico del archivo (por ejemplo, eliminando los últimos 9 dígitos) y colocándolo como destinatario?

Vi una pregunta similar aquí: Automator -> enviar archivo a correo electrónico (desde el nombre del archivo)

pero por alguna razón recibo muchos errores de sintaxis.

¡gracias!

¿No podría simplemente subir las imágenes a Drobpox o Google Drive y enviarles un enlace?

Respuestas (1)

Dado que en su pregunta no incluyó ningún código, mensaje(s) de error o incluso cómo estaba implementando su solución, ofreceré lo siguiente como un ejemplo de cómo podría automatizar la tarea en cuestión. Tenga en cuenta que si bien miré el enlace en su pregunta, sin embargo, dado que era para Outlook y ha etiquetado la pregunta con mail.app , voy a ignorar lo que estaba vinculado y procederé desde cero.

En este escenario de ejemplo, creé una estructura de carpetas jerárquica en ~/Photos , por ejemplo, ~/Photos/Clients/Name/Emailed Photos , y esta es la carpeta a la que arrastraré las fotos de destino, que tienen la convención de nomenclatura, por ejemplo, name @client.com_2847.jpg y la carpeta a la que se adjuntará el flujo de trabajo de Acción de carpeta de Automator .

En Automatizador :

  • Archivo > Nuevo
  • Seleccione Acción de carpeta y haga clic en el botón Elegir .
  • En la Acción de carpeta recibe archivos y carpetas agregados al cuadro de lista Elegir carpeta , seleccione: Otro...
  • Navegue hasta la carpeta de destino, a la que se aplicará la acción, selecciónela y haga clic en el botón Elegir .
  • Agregue una acción Ejecutar AppleScript al flujo de trabajo Acción de carpeta recién creado .
  • Resalte el código AppleScript predeterminado y elimínelo.
  • Copie y pegue el código AppleScript , que se muestra a continuación, en la acción Ejecutar AppleScript .
  • Guardar la acción de la carpeta como, por ejemplo: enviar fotos por correo electrónico a nombre@cliente
    • Esto se guardará como, por ejemplo:
      ~/Library/Workflows/Applications/Folder Actions/Email Photos to name@client.workflow

Ahora, cuando arrastre fotos que tengan la convención de nomenclatura, por ejemplo, name@client.com_2847.jpg a la carpeta de destino, por ejemplo, ~/Photos/Clients/Name/Emailed Photos , se creará un correo electrónico para cada foto y se adjuntará el archivo de destino. Inicialmente, el correo electrónico no se enviará automáticamente hasta que elimine el comentario, elimine el --de delante de la -- send theMessagelínea de código y guarde los cambios. Esto se comenta inicialmente para que pueda probar con un archivo y configurar el asunto y el mensaje para satisfacer sus necesidades. Usaría un archivo que tenga su dirección de correo electrónico para fines de prueba, haciendo uno al principio y luego varios a la vez.

El asunto y el contenido del mensaje de correo electrónico se configuran inicialmente como "Retratos" y "Foto adjunta", respectivamente, como marcadores de posición. Además, hay otra línea de código comentado , -- delay 2arriba de la -- send theMessagelínea de código que puede necesitar/querer implementar si agrega un gran número de archivos al mismo tiempo a la carpeta de destino que tiene la acción de carpeta adjunta, ya que el envío rápido puede causar problemas. Tenga en cuenta que el valor del delay comandoEs posible que deba ajustarse más alto según corresponda para adaptarse a las condiciones y solo tendrá que hacer algunas pruebas para ver qué funciona para usted. Si bien hice algunas pruebas, utilicé un archivo muy pequeño (3 KB) que reproduje y nombré secuencialmente para fines de prueba. Asumiré que tus fotos serán mucho más grandes en tamaño.

Código AppleScript :


property theMessageSubject : "Portraits"
property theMessageContent : "Photo attached."

on GetTheRecipientNameFrom(theFilename)
    --      # Get the filename portion of the alias passed to the Folder Action.        
    set AppleScript's text item delimiters to ":"
    set theFilename to last item of text items of theFilename
    set AppleScript's text item delimiters to ""
    --      # Make sure the filename contains both an '_' and "@".
    --      # This doesn't guarantee a properly formed email address,
    --      # however it does attempt to validate what was passed as one.   
    if theFilename contains "_" and theFilename contains "@" then
        set AppleScript's text item delimiters to "_"
        set theFilename to first item of text items of theFilename
        set AppleScript's text item delimiters to ""
        return theFilename
    else
        return ""
    end if
end GetTheRecipientNameFrom

on run {input, parameters}
    set fileCount to (count of items of input)
    set i to 1
    repeat fileCount times
        set theMessageAttachment to item i of input
        set theRecipient to GetTheRecipientNameFrom(theMessageAttachment as string)
        if theRecipient is not equal to "" then
            tell application "Mail"
                activate
                set theMessage to make new outgoing message with properties {visible:true, subject:theMessageSubject, content:theMessageContent & linefeed & linefeed}
                tell theMessage
                    make new to recipient at end of to recipients with properties {address:theRecipient}
                end tell
                tell content of theMessage
                    make new attachment with properties {file name:theMessageAttachment} at after last paragraph
                end tell
                set i to i + 1
                -- delay 2
                -- send theMessage
            end tell
        else
            set i to i + 1
        end if
    end repeat
end run

Tenga en cuenta que, tal como está codificado, si un archivo se coloca en la carpeta de destino, la carpeta a la que se adjunta la Acción de carpeta, no se ajusta a la convención de nomenclatura de, por ejemplo, nombre@cliente.com_2847.jpg , entonces no se debe crear ningún correo electrónico para ese archivo. , a menos que la parte del nombre de archivo que precede al guión bajo contenga el símbolo @ y cualquier otro carácter. En otras palabras, el único error al verificar el código, tal como está, los intentos de validación es que el nombre del archivo contiene una dirección de correo electrónico válida solo en la premisa si tiene un guión bajo y un símbolo @, entonces asume que el nombre del archivo se ajusta a, por ejemplo, name@ client .com_2847.jpg . Se podría codificar una verificación de errores más estricta, sin embargo, se lo dejaré a usted si lo que se presenta no es adecuado.

Además, se podrían implementar otras formas de verificación general de errores, es decir, asegurarse de que el archivo se adjuntó realmente antes de enviarlo, etc. Sin embargo, esta respuesta pretende ser un ejemplo simple, no necesariamente una solución completamente codificada. Usted tiene la responsabilidad de asegurarse de implementar la verificación de errores adecuada según lo justifiquen las condiciones.

Como puede ver en las imágenes a continuación, escribí y probé esto en un entorno anterior a OS X 10.9, OS X 10.8.6 para ser específicos y tengo marcado "Habilitar acceso para dispositivos de asistencia" en las preferencias de Accesibilidad . En OS X 10.9 y versiones posteriores, incluida la última versión de macOS, Sierra, es posible que deba agregar Mail o Automator a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad para que funcione la Acción de carpeta . No estoy en condiciones de probar esas versiones en este momento, sin embargo, si no funciona para usted, agregue estas aplicaciones en consecuencia.

Imagen de acción de carpeta de Automator

Imagen de mensaje de correo electrónico