You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AppleScript将Apple Mail邮件原始源转换为字符串问题求助

报错根因

该报错并非由邮件内的HTML代码导致,本质是直接将theMessage邮件实例对象强制转换为字符串类型触发的类型不匹配错误,AppleScript原生不支持直接将邮件类实例转换为字符串。

可行解决方案

你需要通过Apple Mail提供的原生属性获取邮件内容字符串,而非直接强转邮件对象,有两种常用实现方案:

  • 方案1:获取完整邮件原始源(最符合你需要检查全量邮件内容的需求,包含邮件头、正文、所有附件元数据、HTML源码等全部信息)
    直接调用邮件对象的source属性即可获取纯字符串格式的完整原始邮件内容,代码示例:

    set mailFullSource to source of theMessage
    

    拿到字符串后直接执行你需要的特征匹配逻辑即可。

  • 方案2:仅获取邮件正文内容拼接
    如果你不需要检查邮件头、编码信息等内容,仅需要检查正文,可分别获取纯文本正文和HTML正文拼接后做匹配:

    set mailTextContent to content of theMessage
    set mailHtmlContent to html content of theMessage
    set checkContent to mailTextContent & mailHtmlContent
    
完整规则参考脚本

以下是可直接用于Apple Mail规则的完整AppleScript模板:

using terms from application "Mail"
    on perform mail action with messages theMessages for rule theRule
        repeat with eachMessage in theMessages
            set rawMailContent to source of eachMessage
            -- 替换为你需要匹配的垃圾邮件特征字符串,支持多条件组合
            if rawMailContent contains "待匹配的垃圾邮件特征" then
                -- 测试阶段可先替换为移动到垃圾邮件文件夹,避免误删
                delete eachMessage
            end if
        end repeat
    end perform mail action with messages
end using terms from
注意事项
  • 字符串匹配默认忽略大小写,如需大小写敏感匹配,可在判断外层包裹considering case块
  • 首次测试建议先注释删除逻辑,添加弹窗通知验证匹配逻辑正确后再开启删除操作
  • 如需匹配多个特征,可通过or连接多个contains判断条件

内容的提问来源于stack exchange,提问作者Porcac1x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:36:06