Lion中的Mail.app - 有没有办法通过电子邮件创建任务?


3

我不确定我是否在Mail.app的早期版本中没有看到过,但我真的很想能够通过电子邮件在iCal中创建任务 - 并且此任务可以链接到原始电子邮件。

也许有一些第三方解决方案可以轻松完成这项工作?

Answers:


5

使用AppleScript可以做到这一点。

如果您熟悉这项技术,您应该只浏览iCal和Mail相应的字典。如果没有,那就是熟悉的机会!这是一个很好的起点。

这是一个你可以使用的非常基本的脚本(仅在Snow Leopard上测试,但在Lion上也可以正常工作):

tell application "Mail"

    set theSelection to selection
    set theMessage to first item of theSelection
    set theSumm to subject of theMessage
    set theDescription to "From : " & sender of theMessage
    set theUrl to "message:%3C" & message id of theMessage & "%3E"

end tell

tell application "iCal"

    make todo at end of events of (first item of every calendar) with properties {summary:theSumm, description:theDescription, url:theUrl}

end tell

为了在Mail中轻松使用它,您应该将其保存~/Library/Scripts/Applications/Mail/(如果它们不存在则创建文件夹)并激活AppleScript编辑器首选项中的Scripts菜单栏项。这是你在Mail时的结果:

在此输入图像描述

您还可以使用生产力工具来启动脚本。那里有很多,但我个人使用Keyboard Maestro和Alfred。

还有很大的改进空间。例如,您可以设置默认警报,将其插入给定日历...为了自己改进它,请使用AppleScript字典:它是您可以找到的最佳参考。但是,这些链接也可能有用,因为它们提供了许多示例(有些可能太旧):脚本邮件脚本iCal


嗨Olivier,我认为这应该作为评论而不是答案,除非你完成脚本并提供答案。OP知道Applescript是一个可能的解决方案,因为他已经标记了它。我也对脚本感兴趣,所以希望你能很快提供它:)
stuffe 2011年

脚本在这里:)
olivier

欢迎你:)
奥利维尔

谢谢!我发现这种方法有一个问题 - 选择Mail5,如果我使用对话视图,则返回整个对话,因此脚本使用其中一条消息。我最初的方法是从所选对话中突出显示的消息创建一个条目。这甚至可能吗?或者我应该使用经典(非会话中心)视图?
kender

直到星期五我才能访问Lion Mac,所以我无法进行测试。我有直觉,可以在AppleScript中检索突出显示的消息,但我从来没有这样做过......如果以前没有人,我会在周五看一下。虽然,以非会话为中心的观点,它应该工作正常,是吗?
奥利维尔

1

在Snow Leopard中,我使用MailTag作为Mail插件,使用Mail.app。在MailTag中,您可以创建实际在iCal中创建的任务。但是,MailTag在Lion中发布了Mail.app的新版本并暂时删除了此功能。

由于我使用Things来管理日常任务,我通常只是将邮件消息拖到Dock中的Things图标中并在那里创建一个任务。事情会将任务同步到iCal。


OmniFocus也提供与iCal类似的工具和同步任务。但在这种情况下,这似乎有些过分。
奥利维尔

我尝试将两种解决方案联系起来,并使用AppleScript将东西添加到事物中(通过键盘快捷方式将其解雇并填写字段而不是手动填充),我只想念一件事 - 如何创建可点击的链接到笔记中的消息,就像我将电子邮件拖到Things时创建的那样...任何线索?:)
kender

从Mail.app编辑菜单中选择邮件消息(而不是对话),复制邮件URL,您可以获取邮件链接。(快捷键是, ^ ⌘的同时 Ü
kukoo

1

使用Automator可能会有一个更简单的解决方案,至少对我的需求而言。此解决方案采用选定的文本,并将其用作预先设置的iCal日历/待办事项列表中的新提醒的标题。

当我问起我想要创建什么时,我启动了Automator并选择了“Service”。

我在默认情况下保留了初始设置(“服务在[任何应用程序]中接收选定的[文本]”)

从左侧的“库”窗格中,我选择了“日历”,然后从中间窗格中选择“新建待办事项”。然后我选择了添加到:[现有日历]并选择了一个日历(我的默认提醒日历,它在iCloud上并与我的iPhone同步)。Automator假设(正确)您要将任何选定的文本提供给新的待办事项。出于我的目的,通过勾选复选框并选择“中”来设置默认优先级是有意义的,但您的需求可能会有所不同。

我将服务保存为CreateReminder(Automator自动附加扩展名.workflow)。Voila,当我选择文本时,该服务显示在Mail.app中,右键单击它,然后选择服务> CreateReminder。

作为奖励,这使您可以在任何应用程序中创建所选文本的提醒,而不仅仅是在Mail.app中。


你能发布Automator工作流程的截图吗?它有助于直观地看到它,而不是你解释它。
daviesgeek


0

我可以推荐这个第三方解决方案让这个大脑变得容易:很奇妙

这将做你要求的一切。

Fantastical适用于您最喜爱的Mac日历应用程序:iCal,BusyCal,Entourage或Outlook。您甚至可以使用Google日历或Yahoo! 日历

关于FANTASTICAL的关键是它如何仅仅通过自然语言分析创建一个新的iCal任务(或事件)。

作为一个例子,这个macrumours的摘录Fantastical review

使用先进的自然语言引擎,Fantastical非常具有表现力,允许用户以自己的风格输入事件文本。例如,输入一个句子,例如“周二在123 Main Street与John共进午餐”,Fantastical会将句子翻译成一个事件并将其添加到他们的日历中。

如何创建工作流以获得使用Fantastical从电子邮件添加iCal任务或事件的能力的示例是:

(以下假设您已创建新的Automator任务以将剪贴板复制的文本传递给FANTASTICAL):

  1. 选择要用于新任务的电子邮件句子,例如“在周五完成此操作”。

  2. 通过CMD+ 复制此选定任务C

  3. 点击预定义的快捷键,使用FANTASTICAL的自然语言引擎将复制到剪贴板的文本作为新任务(或事件)直接处理到iCal中

或 - (如果您不想使用Automator):

  1. 选择要用于新任务的电子邮件句子,例如“在周五完成此操作”。

  2. 通过CMD+ 复制此选定任务C

  3. 点击您在FANTASTICAL中预定义的任何键盘快捷键。

  4. 将所选文本粘贴到FANTASTICAL输入字段中,然后单击“确定”。

  5. 繁荣!您的新任务(或事件)已经通过FANTASTICAL令人难以置信的“自然语言”引擎添加到您的iCal日历中。


1
从该引言中可以看出,Fantastical是否支持通过电子邮件创建任务。您能提供有关该功能的文档的链接或引用吗?
凯尔克罗宁

@Kyle,对不起,我应该更清楚地了解如何通过电子邮件集成在iCal中创建任务或事件的幻想 - 我已更新我的帖子以反映这一点。
user1556373 2011年

0

我编辑了一个在网上找到的旧AppleScript与Reminders一起工作。它使用邮件主题作为标题,使用邮件正文作为注释。需要注意的是iCal必须处于活动状态,否则工作流程将失败。我已将iCal设置为最小化服务运行的时间。我还在最后为Reminders添加了一个启动。我似乎无法弄清楚的唯一一件事是添加一个电子邮件的链接,但除此之外它运作良好。

on run {input, parameters}
    tell application "Calendar" to activate
    tell application "Calendar"
        set miniaturized of window 1 to true
        tell application "Mail"
            set theSelection to selection
            set theMessage to item 1 of theSelection
            set theurl to "message://%3c" & theMessage's message id & "%3e"
            set thedes to theMessage's content
            set input to theMessage's subject
        end tell
    end tell

   tell application "Calendar"
       tell calendar "Reminders"
           make new todo at end with properties {url:theurl, summary:input, description:thedes}
       end tell
    end tell
    return input
end run

希望这有助于某人!凯文


0

您只需将Mail.app中的电子邮件拖放到iCal即可。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.