1 votos

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

Tengo un pequeño problema. Tal vez puedas ayudarme con él. Estoy haciendo muchos retratos para un cliente. Como 200 cada día. Tengo que enviar cada retrato por correo electrónico. Una galería con todos los retratos en uno no está permitida por cosas de privacidad. El cliente quiere definitivamente correos electrónicos. Intenté 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 más o menos, excepto que no soy capaz de extraer la dirección de correo del archivo jpg.

¿Cómo puedo extraer el correo electrónico del archivo (por ejemplo, borrando los últimos 9 dígitos) y ponerlo como destinatario?

He visto una pregunta similar aquí: Automator -> enviar archivo al correo electrónico (desde nombre de archivo)

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

Gracias.

1voto

user3439894 Puntos 5883

Dado que en su pregunta no incluyó ningún código, mensaje de error o incluso cómo estaba implementando su solución, ofreceré lo siguiente como ejemplo de cómo podría automatizar la tarea en cuestión. Tenga en cuenta que mientras miraba el enlace en su pregunta, sin embargo, ya que era para Outlook y has etiquetado la pregunta con aplicación de correo Voy a ignorar lo que se enlazó y proceder a mi manera desde cero.

En este escenario de ejemplo, he creado una estructura jerárquica de carpetas bajo ~/Fotos Por ejemplo ~/Fotos/Clientes/Nombre/Fotos enviadas por correo electrónico 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 el Acción de carpeta de Automator flujo de trabajo se adjuntará.

En Automatizador :

  • Archivo > Nuevo
  • Selecciona, Carpeta Acción y haga clic en el botón Elija botón.
  • En el La Acción Carpeta recibe los archivos y carpetas añadidos a Elegir Carpeta cuadro de lista selecciona: Otros...
  • Navegue hasta la carpeta de destino, aquella a la que se va a aplicar la acción, selecciónela y haga clic en el botón Elija botón.
  • Añade un Ejecutar AppleScript acción a la recién creada Carpeta Acción flujo de trabajo .
  • Destaca el por defecto AppleScript código y borrarlo.
  • Copiar y pegar el AppleScript que se muestra a continuación, en el Ejecutar AppleScript acción .
  • Salvar el Carpeta Acción como, por ejemplo: Enviar fotos por correo electrónico a nombre@cliente
    • Esto se guardará, por ejemplo, como
      ~/Library/Workflows/Applications/Folder Actions/Email Photos to name@client.workflow

Ahora, al arrastrar las fotos con la convención de nombres, por ejemplo name@client.com_2847.jpg a la carpeta de destino, por ejemplo ~/Fotos/Clientes/Nombre/Fotos enviadas por correo electrónico 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 usted descomente, elimine el -- de frente a la -- send theMessage línea de código y guardar los cambios. Esto es inicialmente comentado para que pueda probar con un archivo y obtener su tema y la configuración del mensaje para satisfacer sus necesidades. Yo usaría un archivo que tenga su dirección de correo electrónico para probar, haciendo uno al principio y luego varios a la vez.

El mensaje de correo electrónico tema y contenido se establecen inicialmente como "Retratos" y Foto adjunta", respectivamente, como marcadores de posición. Además, hay otra línea comentada código , -- delay 2 , por encima de la -- send theMessage línea de código que puede necesitar/querer implementar si añade 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 de la delay comando puede ser necesario ajustar más alto según las condiciones y sólo tendrá que hacer algunas pruebas para ver lo que funciona para usted. Aunque hice algunas pruebas, utilicé un archivo muy pequeño (3 KB) que repliqué y nombré secuencialmente con fines de prueba. Supongo que tus fotos tendrán un tamaño mucho mayor.

AppleScript código :


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 y como está codificado, si un archivo cae 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 name@client.com_2847.jpg entonces no se debe crear ningún correo electrónico para ese archivo, a menos que la parte del nombre del archivo que precede al guión bajo contenga el símbolo @ y cualquier otro carácter. En otras palabras, la única comprobación de errores que el código, tal y como está, intenta validar es que el nombre del archivo contenga una dirección de correo electrónico válida sólo bajo la premisa de que si tiene un guión bajo y el símbolo @, entonces asume que el nombre del archivo se ajusta a, por ejemplo name@client.com_2847.jpg . Se podría codificar una comprobación de errores más estricta, pero lo dejaré a su criterio si lo que se presenta no es adecuado.

Además, se podrían implementar otras formas de comprobación general de errores, es decir, asegurarse de que el archivo se ha adjuntado realmente antes de enviarlo, etc., pero esta respuesta pretende ser un simple ejemplo, no necesariamente una solución totalmente codificada. La responsabilidad es suya para asegurarse de que implementa la comprobación de errores adecuada según las condiciones.

Como se puede ver en las imágenes de abajo, escribí y probé esto en un entorno anterior a OS X 10.9, OS X 10.8.6 para ser específico, y tengo marcada la opción "Habilitar acceso para dispositivos de asistencia" en Accesibilidad preferencias. En OS X 10.9 y posteriores, incluida la última versión de macOS, Sierra, es posible que tenga que añadir Correo y o Automatizador a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad para que el Carpeta Acción a trabajar. No estoy en condiciones de probar en esas versiones en este momento, sin embargo, si no funciona para usted, a continuación, añadir estas aplicaciones en consecuencia.

Automator Folder Action Image

Email Message Image

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