Mail.app的规则是向AppleScript发送错误的消息

时间:2018-01-17 15:31:14

标签: applescript rules apple-mail

我有一个由Mail.app规则触发的以下AppleScript:

x-placement

如果我选择了一条消息,请右键单击并选择“应用规则”,它可以正常工作。但是,如果脚本是由传入消息触发的,则它似乎在消息中有一条随机消息。

以下是规则:enter image description here

如何获得正确的信息?

我正在使用High Sierra和Mail 11.2。

2 个答案:

答案 0 :(得分:0)

由于您的脚本将遍历您的邮件,我希望您的邮件不按日期排序...因此,当您运行脚本时,它将采用第一个元素(而不是最新的元素)

你可以运行Mail,然后按日期排序你的电子邮件(最新的位置),然后退出并重新运行Mail(以仔细检查配置是否已保存)

然后验证您的脚本是否有效。

如果您不想手动设置过滤器,根据this,您可以将以下脚本添加到开头:

tell application "System Events" to click menu item "Date" of menu "Sort By" of menu item "Sort By" of menu "View" of menu bar item "View" of menu bar 1 of process "Mail"

在运行脚本之前按日期对电子邮件进行排序,以便获得正确的消息。

您还可以查看hereherehere来验证并仔细检查规则是否已正确设置。

答案 1 :(得分:0)

显然,使用规则处理传入消息是一个异步过程。调用on perform mail action时,消息尚未完全更新。只有部分数据可以立即获得。

可能的解决方法是在脚本中添加delay 1。这给了Mail一秒钟来完成更新消息。这是脚本的样子:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        repeat with msg in theMessages
            -- delay a bit of time for msg to load
            delay 1

            set theText to subject of msg & return & content of msg & date sent of msg

            — do other processing

        end repeat
    end perform mail action with messages
end using terms from