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

如何使用AppleScript将Apple Mail邮件保存为TXT文件或写入剪贴板

两个需求均可通过AppleScript原生实现,无需安装第三方工具,以下是可直接运行的实现方案。

1. 自动化导出邮件为纯文本TXT文件

该脚本会读取你在Apple Mail中当前选中的邮件,导出的纯文本内容和手动执行「文件 > 另存为... > 选择纯文本格式」的输出完全一致,你可以自行修改脚本内的保存路径。

tell application "Mail"
    set selectedMails to selection
    if selectedMails is {} then
        display dialog "请先在Mail中选中需要处理的邮件" buttons {"确定"} default button 1
        return
    end if
    -- 自定义保存路径,默认在桌面创建MailExports文件夹存放导出文件
    set saveRoot to POSIX path of (path to desktop) & "MailExports/"
    do shell script "mkdir -p " & quoted form of saveRoot

    repeat with singleMail in selectedMails
        set mailSender to sender of singleMail
        set mailRecvTime to date received of singleMail
        set mailSubject to subject of singleMail
        set mailPlainText to content of singleMail -- 直接读取邮件原生纯文本内容
        -- 组装和手动导出一致的文本结构
        set exportContent to "发件人: " & mailSender & linefeed & "收件时间: " & mailRecvTime & linefeed & "主题: " & mailSubject & linefeed & linefeed & mailPlainText
        -- 清理文件名里的非法字符
        set safeFileName to do shell script "echo " & quoted form of mailSubject & " | tr '/\\:*?\"<>|' '_'"
        set savePath to saveRoot & safeFileName & ".txt"
        do shell script "printf %s " & quoted form of exportContent & " > " & quoted form of savePath
    end repeat
end tell
display dialog "导出完成,文件已保存到桌面MailExports文件夹" buttons {"确定"} default button 1
2. 直接将纯文本邮件内容写入剪贴板

不需要生成本地文件,读取到纯文本内容后直接传入系统剪贴板,可直接粘贴到任意文本编辑器使用。

tell application "Mail"
    set selectedMails to selection
    if selectedMails is {} then
        display dialog "请先在Mail中选中需要处理的邮件" buttons {"确定"} default button 1
        return
    end if
    -- 默认处理选中的第一封邮件,需要批量处理多封的话加循环拼接内容即可
    set targetMail to item 1 of selectedMails
    set mailSender to sender of targetMail
    set mailRecvTime to date received of targetMail
    set mailSubject to subject of targetMail
    set mailPlainText to content of targetMail
    set copyContent to "发件人: " & mailSender & linefeed & "收件时间: " & mailRecvTime & linefeed & "主题: " & mailSubject & linefeed & linefeed & mailPlainText
end tell
-- 写入系统剪贴板
set the clipboard to copyContent
display dialog "纯文本邮件内容已复制到剪贴板" buttons {"确定"} default button 1

使用说明

  • 首次运行脚本时,系统会弹出权限申请弹窗,允许脚本控制「邮件」应用即可正常运行
  • 脚本中通过content of 邮件对象读取到的内容就是Mail自动解析的纯文本,不会携带HTML格式标签、富文本样式,和手动另存为纯文本的内容完全匹配
  • 如果需要批量复制多封邮件内容到剪贴板,只要在第二份脚本基础上添加循环,将每封邮件的内容拼接后统一赋值给剪贴板即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:27:38