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