Hace poco recibí una ayuda maravillosa al escribir un AppleScript para correo. Mi objetivo es procesar los mensajes entrantes de esta manera: si el mensaje entrante proviene de un remitente designado, mueva ese mensaje a un buzón de destino (como 'Llamadas de caridad') y luego elimine los mensajes anteriores del mismo remitente en ese mismo buzón. Por lo tanto, solo mantendría el mensaje más reciente de ese remitente, similar al de las opciones de barrido en Hotmail / Outlook.
Estaeslareglaqueejecutamiscript.Tengaencuentaqueelcomando'mover'siempreseejecutaantesqueelscript,inclusosiintentocolocarlodespuésdelcomandodeejecucióndelscript.ParecequeMail.appnoejecutólasecuenciadecomandos,ypenséquepodríadeberseaqueprimeromovieraelmensajeentrantealbuzóndedestinoyluegoejecutaralasecuenciadecomandosenelbuzóndedestino.Dadoquelasecuenciadecomandoscomparalosmensajesentrantes(eachMessageinthese_messages
)conlosmensajesenelbuzóndedestino(everyMessage
),¿talveznoquedanobjetosdecadaMensajedespuésdelmovimientoejecutadoparausarenlasecuenciadecomandos?Paraprobarmiteoría,decidíincorporarelcomandodemovimientoenmiscript,delasiguientemanera:
usingtermsfromapplication"Mail"
on perform mail action with messages these_messages for rule this_rule
tell application "Mail"
set everyMessage to a reference to messages in mailbox "Charitable appeals" of account "iCloud"
repeat with eachMessage in these_messages
delete (everyMessage where ¬
the date received is not the (current date) ¬
and (its sender is the sender of eachMessage ¬
or its reply to is equal to the reply to of eachMessage))
end repeat
repeat with eachMessage in these_messages
move eachMessage to mailbox "Charitable appeals" of account "iCloud"
end repeat
end tell
end perform mail action with messages
end using terms from
Así que ahora mi regla solo ejecuta mi script en los mensajes entrantes apropiados. El problema ahora es que, si Apply Rules
manualmente a un mensaje del menú de mail.app, el script se ejecuta como se esperaba, pero cuando la regla se ejecuta automáticamente en los mensajes entrantes, mail.app se cuelga, es not responding
, tengo que forzar el cierre y reiniciar, algunas veces primero deshabilitando el script. Pensé que podría ser porque había más de 100 mensajes en el buzón de correo de destino, pero luego los limpié para que solo tuvieran ~ 50 mensajes y el bloqueo persiste.
Tengo experiencia con Javascript, pero soy un AppleScript n00b, ¡por lo que cualquier ayuda será muy apreciada!