aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc
diff options
context:
space:
mode:
authorGravatar Dmitry Isaikin <isaikin@corp.mail.ru>2016-02-03 11:48:30 +0300
committerGravatar Dmitry Isaikin <isaikin@corp.mail.ru>2016-02-09 13:21:03 +0300
commit908b7d4b8fdd7be43687450a36d56a6fb905ca25 (patch)
tree6be0ff44dc12147272145aae469aec13bf90d408 /src/objc
parentaa80a00642039403ad21462541765d520645471f (diff)
Add method for building message rfc822 body directly to file.
Diffstat (limited to 'src/objc')
-rw-r--r--src/objc/rfc822/MCOMessageBuilder.h3
-rw-r--r--src/objc/rfc822/MCOMessageBuilder.mm9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/objc/rfc822/MCOMessageBuilder.h b/src/objc/rfc822/MCOMessageBuilder.h
index 1663d6f7..fbebb7f6 100644
--- a/src/objc/rfc822/MCOMessageBuilder.h
+++ b/src/objc/rfc822/MCOMessageBuilder.h
@@ -61,6 +61,9 @@
/** RFC 822 formatted message for encryption.*/
- (NSData *) dataForEncryption;
+/** Store RFC 822 formatted message to file. */
+- (BOOL) writeToFile:(NSString *)filename error:(NSError **)error;
+
/**
Returns an OpenPGP signed message with a given signature.
The signature needs to be computed on the data returned by -dataForEncryption
diff --git a/src/objc/rfc822/MCOMessageBuilder.mm b/src/objc/rfc822/MCOMessageBuilder.mm
index 84cc37f2..31ebc742 100644
--- a/src/objc/rfc822/MCOMessageBuilder.mm
+++ b/src/objc/rfc822/MCOMessageBuilder.mm
@@ -70,6 +70,15 @@ MCO_OBJC_SYNTHESIZE_STRING(setBoundaryPrefix, boundaryPrefix)
return MCO_OBJC_BRIDGE_GET(dataForEncryption);
}
+- (BOOL) writeToFile:(NSString *)filename error:(NSError **)error
+{
+ mailcore::ErrorCode errorCode = MCO_NATIVE_INSTANCE->writeToFile(MCO_FROM_OBJC(mailcore::String, filename));
+ if (error) {
+ *error = [NSError mco_errorWithErrorCode:errorCode];
+ }
+ return errorCode == mailcore::ErrorNone;
+}
+
- (NSString *) htmlRenderingWithDelegate:(id <MCOHTMLRendererDelegate>)delegate
{
MCOAbstractMessageRendererCallback * htmlRenderCallback = new MCOAbstractMessageRendererCallback(self, delegate, NULL);