好的,我需要根据某些标准自动将一些电子邮件添加到我的 Daylite 任务中,因此我设置了 Mail.app 规则和 AppleScript 来完成此操作。只有一个问题:当 AppleScript 获取消息的内容时,它会在末尾添加一个“a”(并且还会发出哔声,让我知道它尝试了一些显然不允许的击键)。
这是 AppleScript 的样子:
using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
tell application "Mail"
repeat with eachMessage in theMessages
try
set this_subject to subject of eachMessage
set this_body to content of eachMessage
if this_subject is "" then error
on error
set this_subject to "No subject."
end try
activate application "Daylite"
tell application "System Events"
keystroke "t" using {command down, shift down}
keystroke this_subject
keystroke tab
keystroke this_body
keystroke "s" using command down
end tell
end repeat
end tell
end perform mail action with messages
end using terms from
这导致我在 Daylite 中获得了一个新任务,其中任务标题是电子邮件主题,并且显示正确,但作为电子邮件正文的附件注释未正确显示。
因此,如果我收到一封符合我的规则的电子邮件,并且该电子邮件是:
来自:假想的妻子
主题:别忘了倒垃圾!
身体:如果你再忘记一次,我提出离婚。
最终的任务如下所示:
☐ 不要忘记倒垃圾!
如果你再忘记一次,我正在申请离婚。
......在这种情况下让我假想的妻子听起来像一个几乎没有文化的加拿大人。(此外还有系统警报声,让我知道它显然试图输入不允许的内容。)
如果正文有多行文本,它也会令人讨厌地删除换行符。
我知道我可以将其设置为:
set the clipboard to this_body
然后替换
keystroke this_body
和
keystroke "v" using command down
…但这是一个非常不雅的解决方案,我不想在每次规则运行时都替换剪贴板中的任何内容。
我在这里做错了什么?我也在 TextEdit 中对此进行了测试,同样的问题也出现在那里,所以这不是 Daylite 问题。我还尝试将“作为 Unicode 文本”或“作为字符串”或“作为«class UTF8»”附加到“设置 this_body...”行的末尾,但这些都没有解决问题。
请像我是个彻头彻尾的白痴一样向我解释,因为作为一个彻头彻尾的白痴,这是我理解你的唯一方式。谢谢。