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!
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 :
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 theMessage
lí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 2
arriba de la -- send theMessage
lí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.
nivel42