使用ScriptBridge保存Apple Mail消息

时间:2013-02-22 14:09:52

标签: cocoa osx-mountain-lion apple-mail

我正在尝试使用ScriptBridge从Apple Mail保存选定的电子邮件。

我已经创建了Mail.h文件,在我的程序中,我已成功完成Apple Mail ScriptBridge的其他操作(如转发消息等)。

这是我目前的代码。我没有收到错误消息,代码运行正常;只有文件永远不会被创建。

我正在使用Xcode 4.6。在山狮10.8.2。我的应用的部署目标是10.8。

- (void)saveEmail {
    MailApplication *mailApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.Mail"];

    SBElementArray *viewers = [mailApp messageViewers];

    for (MailMessageViewer *viewer in viewers) {

        NSArray *selectedMessages = [viewer selectedMessages];

        @try {
            for (MailMessage *selectedMessage in selectedMessages) {

                NSString *filePath = [NSString stringWithFormat:@"%@%@",@"/Users/patrick/Documents/",@"tmp.rtf"];
                NSURL *fileUrl = [NSURL fileURLWithPath:filePath];

                [selectedMessage saveIn:fileUrl as:MailSaveableFileFormatNativeFormat];
            }
        }
        @catch (NSException *exception) {
            NSLog(@"Exception:%@", exception);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

有完全相同的问题。似乎saveIn未在Mail中实现。 我有这个代码的解决方法:

[message.source writeToURL:mailUrl
                            atomically:YES
                              encoding:NSUTF8StringEncoding
                                 error:nil];

其中messageMailMessage的实例 这似乎在大多数情况下都能正常工作。但有时附件在保存的邮件中是空的。所以如果有人有更好的解决方案......