Это работает только тогда, когда вы щелкаете правой кнопкой мыши по почтовому сообщению и выбираете «выполнить правила», но не для входящих сообщений (без взаимодействия).
Первый диалог отображается как при входе, так и при запуске вручную, а второй диалог (с идентификатором) отображается только при запуске вручную. В console.log ничего не отображается
Любые идеи?
using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
tell application "Mail"
repeat with theMessage in theMessages
display dialog "inside"
set theId to id of theMessage
display dialog "the id is " & theId
end repeat
end tell
end perform mail action with messages
end using terms from
обновление: я добавил блок try catch вокруг
set theId to id of theMessage
и это ошибка, которую я получаю:
Can't get class mssg 1 of class mbxp "Incoming POP messages" of class mact "Telenet". Invalid index. -1719
Есть идеи, что это значит? Я не получаю ошибку при применении правил вручную.
Обновление 2: хорошо, я обнаружил, что у входящих сообщений еще нет идентификатора. Это проблема, так как я хочу сохранить письмо на диск:
set theEmail to (do shell script "mdfind -onlyin ~/Library/Mail \"kMDItemFSName = '" & theId & ".emlx'\"")
set archiveName to theId & "-" & (extract address from theMessage's sender) & ".emlx"
set saveLocation to "Users:wesley:Documents:Incoming:"
do shell script "cp '" & theEmail & "' '" & POSIX path of saveLocation & "';"
Есть ли способ обойти это?
id
s иmessage id
s для входящих сообщений. Странно... Вас интересует мой AppleScript, способный получатьid
s иmessage id
s? - person John Sauer   schedule 26.01.2013