使用AppleScript将邮件消息设置为纯文本

4

我有一个AppleScript,可以很好地整理信息并创建带附件的电子邮件。

我找不到一种方法让脚本将消息格式设置为“纯文本”,这是接收邮箱所需的(而不是默认的“富文本”)。

是否有一种AppleScript的方式(或技巧),可以将消息格式设置为“纯文本”?

5个回答

3
我在尝试解决这个问题时发现了这个问题。最终,我想出了以下解决方案:
tell application "Mail"
    set newMessage to make new outgoing message 
        with properties {visible:true,
                         subject:"message title",
                         sender:"sender@from.address",
                         content:mailBody}
    tell newMessage
        make new to recipient with properties {address:"mail@recipient.com"}
    end tell
    activate
end tell

tell application "System Events"
    click menu item "Make Plain Text" of ((process "Mail")'s (menu bar 1)'s (menu bar item "Format")'s (menu 1))
end tell

希望这篇内容对某些人有用,我知道几个小时前我就需要这个!本文在邮箱版本7.3和12.4上进行了测试。更新或更旧的版本可能需要不同的菜单标题。

1
在你的脚本中创建消息的部分之前,添加这一行代码。
 tell application "Mail" to set default message format to plain text

在脚本的最后添加以下内容以重置该值。
 tell application "Mail" to set default message format to rich text

不幸的是,这给了我一个AppleScript错误:“Mail遇到错误:无法将字符串转换为类型常量。” - So Over It
你尝试过单独运行该命令吗?在我的10.6.8上,使用Mail 4.5可以正常工作。 - adayzdone
1
我正在10.8.1上运行Mail版本6.0。在你的提示后查看了AppleScript字典后,我发现格式似乎已经从“set default message format to plain text”更改为“set default message format to plain format”。这样就可以编译和运行了-但不幸的是,消息仍然是富文本。 - So Over It
那么你可以运行纯文本脚本,然后创建一个新消息,在正文中输入几个单词,将它们突出显示,然后按下 Command+B 使它们加粗? - adayzdone
1
是的,即使我将其设置为纯文本,然后创建消息,它仍然以富文本形式发送。这是在我没有对邮件消息进行任何“编辑”的情况下。如果我检查由AppleScript发送的邮件头,它们将包含Content-Type: TEXT/HTML;。只有当我从Mail.app中手动选择纯文本发送消息时,标题才会包含Content-Type: text/plain; - So Over It
显示剩余3条评论

0
自2013年以来,我一直在使用AppleScript从应用程序中发送电子邮件。从MacOS 13开始,文本从纯文本变成了富文本(我仍然保留着2013年甚至2018年发送的原始消息,显示文本是纯文本)。然而,自从MacOS 13以来,一个严重的问题是,在这种情况下,字符'> '(大于号和空格)会被添加到消息内容之前,这导致一些下游服务器无法找到任何文本。这是一个错误。
将消息格式设置为纯文本并不能删除这两个新字符。
尝试将默认设置为纯文本格式没有任何效果(富文本电子邮件中同时包含富文本和纯文本)。
使用@Jonathan Cross的解决方案,在MacOS 13.5.2 Mail 16.0中似乎需要在系统设置>隐私与安全中删除应用程序的辅助/可访问性条目,并在每次创建新版本的程序时重新添加它。(有时在Xcode中运行时,如果二进制文件没有更改(在Debug文件夹中),则不需要这样做)。在终端中使用以下命令重置请求权限的警报,以使用系统事件和控制邮件:

tccutil reset AppleEvents <您的精彩应用程序的包标识>

0

您可以使用键盘快捷键shiftt,将消息格式更改为纯文本

tell application "System Events" to keystroke "t" using {command down, shift down}

已在 Mail 版本 12.4 中测试


0
很遗憾地说,苹果的实现非常糟糕,目前没有任何解决方法。你只能忍受它或者找到一种通过命令行发送邮件的方式。
在macOS 13中情况变得更糟了。尝试让系统事件发送键盘快捷键会导致权限错误,即使在系统设置中已经授予了所有权限。

将程序添加到系统设置 > 隐私与安全中。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接