当我只想从组中选择一封邮件时,如何阻止AppleScript选择Mail.app对话中的所有邮件?

当我只想从组中选择一封邮件时,如何阻止AppleScript选择Mail.app对话中的所有邮件?,applescript,reminders,Applescript,Reminders,我最想做的事情是:我想把电子邮件作为待办事项添加到members.app。我猜出来了。我的下一个目标是能够选择多封电子邮件并有提醒。app为每封选定的电子邮件创建TODO。我猜出来了 问题是:当我选择一封属于对话一部分的电子邮件时,该对话中的所有邮件都会作为单独的提醒/待办事项添加。这一部分可能会让人困惑,但我会尽可能详细地描述如何选择消息。在Mail.app中,我在最右侧的窗格中选择了一条消息,在该窗格中,对话中的所有电子邮件都显示在可滚动列表中。这是我选择特定消息的区域。因此,即使我正在从对

我最想做的事情是:我想把电子邮件作为待办事项添加到members.app。我猜出来了。我的下一个目标是能够选择多封电子邮件并有提醒。app为每封选定的电子邮件创建TODO。我猜出来了

问题是:当我选择一封属于对话一部分的电子邮件时,该对话中的所有邮件都会作为单独的提醒/待办事项添加。这一部分可能会让人困惑,但我会尽可能详细地描述如何选择消息。在Mail.app中,我在最右侧的窗格中选择了一条消息,在该窗格中,对话中的所有电子邮件都显示在可滚动列表中。这是我选择特定消息的区域。因此,即使我正在从对话中选择一条消息,该对话中的所有消息都会添加到我的AppleScript列表变量中,并随后变成提醒/待办事项

如果我在Mail.app中关闭“按对话组织”,问题就会消失。我喜欢通过对话来组织我的电子邮件,所以如果有解决这个问题的脚本,我更喜欢这种方式。然而,我想不出任何方法来解决这个问题,所以我希望这里的人有一些想法

这是我的剧本:

property defaultList : "Parking Lot"

on newReminder(theBody, theTitle)
    tell application "Reminders"
        tell list defaultList
            make new reminder with properties {body:theBody, name:theTitle}
        end tell
    end tell
end newReminder


tell application "Mail"
    set selectedMessages to {}
    set selectedMessages to selection
    if (count of selectedMessages) is 0 then
        return "Please select a message in Mail.app and try again."
    else
        repeat with i from 1 to (count of selectedMessages)
            tell item i of selectedMessages
                set messageid to message id
                set urlText to "message://" & "%3c" & messageid & "%3e"
                set theSender to extract name from sender
                set theSubject to subject
                my newReminder((theSender & " " & urlText), theSubject)
            end tell
        end repeat
    end if
end tell

邮件应用程序的AppleScript属性
选择
似乎忽略了预览窗格(OS X Lion布局中最右边的窗格)中是否突出显示了对话中的单个消息。
选择
仅由消息列表(中间窗格)中选择的消息决定。如果您想在AppleScript中使用
选择
来显示对话的单个消息,则必须从消息列表中选择单个消息

而不是预览窗格


我很难为情地说,我甚至不知道用这种方式扩展邮件列表的能力——现在看来很明显。谢谢你的帮助!