código AppleScript para mensajes de bucle en Entourage y eliminarlos
-
03-10-2019 - |
Pregunta
Me escribió un simple AppleScript, que los bucles de forma indefinida dentro de la bandeja de entrada de Entourage y obtiene asuntos de los mensajes no leídos "":
tell application "Microsoft Entourage"
activate
repeat with eachMsg in messages of folder named "Inbox"
if read status of eachMsg is untouched then
set messageSubject to subject of eachMsg as string
-- bla bla bla
-- How to delete the message and proceed with the next one???
end if
end repeat
Ahora, el problema es que quieren eliminar los mensajes después de conseguir el tema. ¿Cómo puedo hacer esto? ¿Me podría escribir un ejemplo?
Gracias de nuevo!
Solución
Una vez que se elimina un mensaje, que han cambiado la longitud de la lista de mensajes, por lo que en algún momento, se le va a venir a través de un índice que ya no existe, ya que han borrado suficientes mensajes. Para evitar esto, usted tiene que (esencialmente) codificar el bucle; obtener el recuento de mensajes, y comenzar desde el último mensaje y subir desde allí. A pesar de que se ha eliminado un mensaje, los índices superiores a la actual serán siempre intacta. No probado, pero es un patrón que he usado en otros lugares ...
tell application "Microsoft Entourage"
activate
set lastMessage to count messages of folder named "Inbox"
repeat with eachMsg from lastMessage to 1 by -1
set theMsg to message eachMsg of folder named "Inbox"
if read status of theMsg is untouched then
set messageSubject to subject of theMsg as string
-- bla bla bla
-- How to delete the message and proceed with the next one???
end if
end repeat
sintaxis "conveniencia" de Applescript a veces no lo es, y es por eso que normalmente evitar por completo.
Otros consejos
Aquí está una snippit de un ejemplo de la página Entourage ayuda de Microsoft (en concreto el guión "Nuke Mensajes"):
repeat with theMsg in theMsgs
delete theMsg -- puts in Deleted Items folder
delete theMsg -- deletes completely
end repeat