Jump to content

Mail, Automator y applescript


Recommended Posts

Hola,

 

Hace tiempo encontrar algo por internet, pero no logo volver a verlo.

Estoy intentando crearme una automatización para el mail. Cada vez que recibo un mail en concreto que coja su adjunto lo guarde en una ubicación y lo renombre.

Como imaginais no logro que funcione y no se si es por el fujo de automator, o porque no se ejecutarlo en el script.

Tengo creada la regla de mail, con la ejecución de un script.

he leído que para ejecutar una app de automator, en el script hay que escribir : tell application “/ruta/de/aplicacion/creada/en/automator/miAutomator.app" to activate.

El flujo de automator es el siguiente:

-Mostrar mensaje de correo

-obtener archivo adjunto

-Renombrar items del finder: Añadir Fecha y hora

Alguien sabría en que me estoy equivocando. Yo creo que es en el script, hace tiempo en el articulo que leí usaban el comando run, pero no se y no se nada de applescript

 

Gracias Por adelantado

Un saludo

Link to post
Share on other sites

El script debería funcionarte correctamente.

tell application “/ruta/de/aplicacion/creada/en/automator/miAutomator.app" to activate
tell application “/ruta/de/aplicacion/creada/en/automator/miAutomator.app" to run
run application "/ruta/de/aplicacion/creada/en/automator/miAutomator.app"

Cualquiera de las tres frases que te he puesto funciona correctamente, la diferencia está en que la primera ejecuta la aplicación en primer plano y las otras en segundo plano.

Aunque no lo he probado con Mail, para que el script se ejecute debes guardarlo como aplicación. Si lo guardas como script se abrirá el editor en lugar de ejecutarse. Ni caso, Mail solo acepta scripts, no aplicaciones.

Para asegurarte que el script se ejecuta puedes añadir antes de la llamada a tu aplicación de Automator la siguiente instrucción:

display dialog "hola"

 

PD: Si arrastras tu aplicación  a la ventana del Editor de Script se escribe la ruta, así seguro que no hay fallos.

Edited by APB
  • Me gusta 1
Link to post
Share on other sites

¡Holaaa!

 

La verdad que hace tiempo que no uso los Mac...me quedé en el 10.4 Peero, esto sí que lo he tenido que hacer.

Mi solución para, igualmente, por AppleScript, o si nos metemos más adentro, en el uso del terminal. La idea está en controlar, con el script, el correo, y si ves que tienes un adjunto, descargarlo. Una vez ahí, renombras (y al renombrar lo colocas en la carpeta que se necesita)

 

Pasando por Automator, la única opción que se me hubiera ocurrido es generar lo que necesites (hasta donde se pudiera) y darle más potencia a través de AppleScript

(Automator me pareció una idea de llevar AppleScript a una interfaz de uso sencillo, por eso no lo usé)

 

🧐

  • Me gusta 1
Link to post
Share on other sites

Aquí tienes un script que hace lo que pides:

using terms from application "Mail"
	on perform mail action with messages theMessages for rule theRule
		tell application "Finder"
			-- The folder to save the attachments in (must already exist)
			set attachmentsFolder to ((path to home folder as text) & "Documents:Attachments") as text
			
			-- Save in a sub-folder based on the name of the rule in Mail
			set subFolder to name of theRule as text
			if not (exists folder subFolder of folder attachmentsFolder) then
				make new folder at attachmentsFolder with properties {name:subFolder}
			end if
		end tell
		
		-- Get incoming messages that match the rule
		tell application "Mail"
			repeat with theMessage in theMessages
				
				-- Get the date the message was sent
				set {year:y, month:m, day:d, hours:h, minutes:min} to theMessage's date sent
				set timeStamp to ("" & y & "-" & my pad(m as integer) & "-" & my pad(d) & "-" & my pad(h) & "-" & my pad(min))
				
				-- Save the attachment
				repeat with theAttachment in theMessage's mail attachments
					set originalName to name of theAttachment
					set savePath to attachmentsFolder & ":" & subFolder & ":" & timeStamp & " " & originalName
					try
						save theAttachment in file savePath
					end try
					
				end repeat
			end repeat
		end tell
	end perform mail action with messages
end using terms from

-- Adds leading zeros to date components
on pad(n)
	return text -2 thru -1 of ("00" & n)
end pad

Lo he probado y modificado para que funcione, con MacOS 10.13.6, y hace lo que pides. Solo tienes que crear una carpeta donde copiar esos adjuntos y sustituir Documents:Attachments por la dirección de tu carpeta en la instrucción:

"set attachmentsFolder to ((path to home folder as text) & "Documents:Attachments") as text"

Para ser más claro, si creas la carpeta y al arrastrarla a la ventana del Editor aparece: /Users/chili_asak/Desktop/carpeta adjuntos debes sustituir Documents:Attachments de la instrucción del script por Desktop:carpeta adjuntos

 

Lo he encontrado aquí: http://www.macosxtips.co.uk/index_files/automatically-save-mail-attachments-using-applescript.php

OJO: Me ha dado por leer los comentarios y es posible que no funcione en los MacOS modernos. No funcionaba el original pero con las modificaciones si funciona.

Edited by APB
  • Me gusta 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.