Получить тему письма с использованием appleScript - PullRequest
0 голосов
/ 14 октября 2011

Я пишу сценарий с использованием шаблона Mail applecript (Файл> Создать из шаблона> Mail> Mail Rule Action.scptd), но примеры в шаблоне не работают

using terms from application "Mail"
      on perform mail action with messages these_messages for rule this_rule
                tell application "Mail"
                          set the message_count to the count of these_messages
                          repeat with i from 1 to the message_count
                                    set this_message to item i of these_messages
                                    try
                                              set this_subject to (subject of this_message) as Unicode text
                                              if this_subject is "" then error
                                    on error
                                              set this_subject to "NO SUBJECT"
                                    end try
                            say this_subject
                          end repeat
                end tell
      end perform mail action with messages
end using terms from

Там написано "нет темы", даже если у сообщения есть тема. Я использую OS X 10.7.2 и Mail 5.1. Есть предложения?

Ответы [ 2 ]

1 голос
/ 25 июня 2012

Попробуйте добавить delay 3 в set this_subject to (subject of this_message) as Unicode text. Возможно, Mail не успевает обработать сообщение, чтобы получить строку темы, прежде чем перейти к следующей команде.

Если это работает, вам может не потребоваться 3 секунды. Вы можете поэкспериментировать с уменьшением времени задержки. Обратите внимание, что вы можете использовать десятичные дроби, как в 1.8.

0 голосов
/ 21 декабря 2012

У меня это работает под 10.8.2 (Mail 6.2), если это вообще помогает?Вот код, который я использую:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        tell application "Mail"
            repeat with eachMessage in theMessages
                try
                    set this_subject to subject of eachMessage
                    if this_subject is "" then error
                on error
                    set this_subject to "No subject."
                end try
                say this_subject
            end repeat
        end tell
    end perform mail action with messages
end using terms from

Надеюсь, это поможет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...