Код AppleScript для петли сообщений в антураге и удалить их

StackOverflow https://stackoverflow.com/questions/3719085

  •  03-10-2019
  •  | 
  •  

Вопрос

Я написал простой AppleScript, который петли бесконечно внутри почтовых ящиков внутри антуража и получает субъекты «непрочитанные» сообщения:

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

Теперь проблема в том, что я хочу удалить сообщения после получения объекта. Как я могу это сделать? Не могли бы вы написать мне пример?

Спасибо еще раз!

Это было полезно?

Решение

После того, как вы удалите сообщение, вы изменили длину списка сообщений, поэтому в какой-то момент вы собираетесь столкнуться с индексом, который больше не существует, потому что вы удалили достаточно сообщений. Чтобы обойти это, вы должны (по существу) жесткий код петли; Получите количество сообщений и начните с последнего сообщения и переместитесь оттуда. Даже если вы удалили сообщение, индексы выше текущего всегда будут не повреждены. Непроверенный, но это шаблон, который я использовал в другом месте ...

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

Синтаксис «Удобье AppleScript» иногда нет, и вот почему я обычно избегаю его вообще.

Другие советы

Вот снимается с примера на странице справки поддержки Microsoft Entourage (в частности, сценарию «Сообщений NUKE):

repeat with theMsg in theMsgs
    delete theMsg -- puts in Deleted Items folder
    delete theMsg -- deletes completely
end repeat 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top