1

メールメッセージを右クリックして[ルールの実行]を選択した場合にのみ機能しますが、受信メッセージでは機能しません(対話なし)。

最初のダイアログは、着信時または手動で実行している場合の両方で表示されますが、2番目のダイアログ(ID付き)は、手動で実行している場合にのみ表示されます。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

更新:trycatchブロックを追加しました

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:OK私は着信メッセージがまだIDを持っていないことを知りました。メールをディスクに保存したいので、これは問題です。

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 & "';"

これを回避する方法はありますか?

4

1 に答える 1