Using AppleScript to Move Mail Messages to Trash

血红的双手。 提交于 2019-12-08 13:14:55

问题


I've written a script that is invoked by a Mail rule. I want the script to move messages to the trash under certain conditions. It didn't work so I've commented out the test and it still didn't work. I got the code from an online tutorial. The tutorial moved the message to "Filed". The rule itself worked when I replaced the call to the script with a move to the trash. Here's what I'm testing:

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_content to (every character of content of this_message) as Unicode text
            --                  if this_content is in {"", "?"} then error
            -- if "bowles" is not in this_content and "patton" is not in this_content then
            set mailbox of this_message to mailbox "Trash"
            -- end if
            --              on error error_message
            --                  set this_content to "NO CONTENT"
            --              end try
        end repeat
    end tell
end perform mail action with messages

end using terms from

The statement at issue is: set mailbox of this_message to mailbox "Trash"

The rest of the active code was from AppleScript Editor template.

Thanks, Curt

P.S. Are there any books out there that deal with using AppleScript with Mail?


回答1:


Instead of trying to "move" a message to the Trash, you should just say delete this_message.

Mail.app will then proceed according to your account settings (Mail preferences > Accounts > (your account) > Mailbox Behaviors > Trash) and move the message to its account's Trash mailbox or else delete it immediately, depending on your settings.




回答2:


I should have done a more extensive Web search before asking here. Hopefully, this answer will be useful to others. I added the first line below and modified the second one from the code above.

        set theAccount to account of mailbox of this_message
        set mailbox of this_message to mailbox "Trash" of theAccount


来源:https://stackoverflow.com/questions/9243701/using-applescript-to-move-mail-messages-to-trash

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!