2011-10-15 46 views
0

我编写了一个AppleScript来备份我的所有电子邮件。我已将大量电子邮件保存为本地硬盘驱动器上的.eml文件,并将它们从服务器中删除。有没有办法使用AppleScript加载.eml文件为消息以获得日期发送,主题等等?AppleScript - 获取.eml文件的信息

回答

1

怎么是这样的:

set fromField to text 7 thru -1 of (do shell script "cat /test.eml | grep From:") 
set dateField to text 7 thru -1 of (do shell script "cat test.eml | grep Date:") 
set toField to text 5 thru -1 of (do shell script "cat /test.eml | grep To:") 
set subjectField to text 10 thru -1 of (do shell script "cat /test.eml | grep Subject:") 

身体是有点困难,因为你需要决定,如果你只想要电子邮件身体或也都被嵌入到体内之前的电子邮件。以下是我的测试邮件的正文。

set temp to do shell script "cat /test.eml" 
set text item delimiters to "--" 

set temp2 to (text item 3 of temp) 
set text item delimiters to " 
" 
set messageField to paragraphs 6 thru -1 of temp2 as text 

请确保您注意文件的编码,如果您使用其他字符。

+0

非常感谢。它对日期工作正常。但对于这个问题,有一个问题。我得到一个很长的字符串,最后有“Subject:=”和一长串随机字母。我怎样才能使它工作? –

+0

这个脚本适用于我的测试文件,如果你想让我处理更广泛的电子邮件范围,我可以看看它失败的地方。只要做(做shell脚本“cat /test.eml | grep Subject:”),看看你给了什么。 –