AppleScript在Mac Mail.app中处理传入的电子邮件

时间:2015-06-29 15:43:13

标签: python macos email applescript

实际上我的问题与this one相同,答案已经给我带来了很大的进展。 (摘要:我希望我的python脚本在每个具有特定主题的传入电子邮件上运行,并从内容中提取数据。)

无论如何,我是AppleScript的完全新手,无法找到将触发电子邮件的内容作为参数提供给我的python脚本的解决方案。

实际上我只需要传递电子邮件的html内容。

任何人都可以指出我正确的方向或带来一些光线进入黑暗?非常感谢你。

我的AppleScript目前看起来像这样,虽然我的脚本现在应该打印电子邮件内容,但没有任何反应:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        tell application "Mail"
            repeat with eachMessage in theMessages
                set theContent to source of eachMessage
                do shell script "python completePathToPyScript.py" & theContent
            end repeat
        end tell
    end perform mail action with messages
end using terms from

然后我的python脚本执行以下测试:

import sys

email_data = str(sys.argv[1])
print email_data

或者我接管数据的方式不正确?

1 个答案:

答案 0 :(得分:1)

试试这个。请注意,您不应使用tell application "Mail",因为此事件由Mail触发,因此您可以访问Mail提供的所有功能。在这种情况下,您只需要using terms from application "Mail"。您可以通过键入 command + shift + o 并选择“Mail.app”来查找更多信息。这将向您显示Mail的字典,并且应该是进一步开发代码的良好起点。我现在已将其修改为没有任何特定规则的工作,作为我过去遇到的一些问题的解决方法:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        repeat with eachMessage in theMessages
            if subject of eachMessage contains "Express222" then
                set theContent to source of eachMessage
                display alert theContent
            end if
        end repeat
    end perform mail action with messages
end using terms from