OS X邮件 - 在撰写模式下打开*.eml文件

11

我该如何在Mac OS X邮件中以撰写模式打开*.eml文件?对于Outlook,“X-Unsent: 1”似乎是个好办法,但对于Mac OS X邮件不起作用,仍然只能以只读模式打开。

2个回答

2

这是一个非常老的问题,但显然已经吸引了相当多的关注。引起我的好奇心,我决定去看看。经过一些试验,我发现您可以添加以下标题使消息可编辑:

X-Uniform-Type-Identifier: com.apple.mail-draft

将此内容添加到符合RFC-2822标准的邮件中,将其命名为.eml.emlx扩展名,然后双击即可在Mail.app中作为可编辑的消息打开。
祝您使用愉快。

1
嘿,为什么不分享一下我是如何得出这个结论的呢?打开 Mail.app 后,在我的 iCloud 帐户中撰写了一封新邮件。然后打开 Terminal.app 并导航到 ~/Library/Mail/V3,运行 find . -type f -mmin -3 | xargs ls -lrt。在最后几个条目中,我找到了我的 .emlx 文件。打开它后发现有许多头文件,而上面的那个最有可能匹配。我从头开始创建了一个新的 .eml 文件,放入基本的头文件(主题、发件人、收件人)和测试头文件、一些内容,然后保存该文件。它就像我想要的那样打开了。 - angrychimp
这对 Gmail 或 Exchange 帐户不起作用,因为 Mail.app 添加了一些额外的 .plist 信息,我找不到公式。理论上,您可以使用此功能创建一个没有发件人条目的新消息,然后在打开文件时选择一个。 - angrychimp
3
刚在macOS 11 Big Sur上测试过,但这种方法不再有效。双击.eml文件并使用CMD + SHIFT + D似乎是最好的解决方法。 - catlan

0
在macOS Catalina 10.15.7中,从Python脚本运行以下命令以打开新消息并切换到撰写模式的操作是有效的,但如果osascript命令运行太快,则存在打开消息和将其置于撰写模式之间的竞争条件。 sleep命令可用于防止竞争,但您可能需要调整睡眠时间的长度来进行补偿。(我还在Python中使用了time.sleep(1)而不是shell命令。)
/usr/bin/open -a Mail path/to/tmp/message.eml
/bin/sleep 1
/usr/bin/osascript -e 'tell application "System Events" to tell application process "Mail"' -e 'keystroke "d" using {command down, shift down}' -e 'end tell'

请注意,您必须授予终端访问其他应用程序的权限,否则osascript命令将会失败并显示错误。为此,请打开“系统偏好设置”,点击“安全性与隐私”选项,从左侧菜单中选择“辅助功能”,点击锁形图标以解锁菜单,然后在“允许应用程序控制您的计算机”列表中勾选终端项目(如果未列出,则添加)。
另外,请注意,Cmd-Shift-D键盘快捷键发送的是已经处于撰写模式的邮件,因此如果有人在脚本运行时正在使用邮件,并且他们有一个单独的撰写窗口在前景中,则脚本可能会发送该消息,而不是将新消息放入撰写模式。

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