diff options
author | Dmitry Isaikin <isaikin@corp.mail.ru> | 2016-02-03 11:48:30 +0300 |
---|---|---|
committer | Dmitry Isaikin <isaikin@corp.mail.ru> | 2016-02-09 13:21:03 +0300 |
commit | 908b7d4b8fdd7be43687450a36d56a6fb905ca25 (patch) | |
tree | 6be0ff44dc12147272145aae469aec13bf90d408 /src/core/rfc822/MCMessageBuilder.cpp | |
parent | aa80a00642039403ad21462541765d520645471f (diff) |
Add method for building message rfc822 body directly to file.
Diffstat (limited to 'src/core/rfc822/MCMessageBuilder.cpp')
-rw-r--r-- | src/core/rfc822/MCMessageBuilder.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/core/rfc822/MCMessageBuilder.cpp b/src/core/rfc822/MCMessageBuilder.cpp index a98cefd1..b3a95249 100644 --- a/src/core/rfc822/MCMessageBuilder.cpp +++ b/src/core/rfc822/MCMessageBuilder.cpp @@ -810,6 +810,31 @@ Data * MessageBuilder::dataForEncryption() return dataAndFilterBccAndForEncryption(false, true); } +ErrorCode MessageBuilder::writeToFile(String * filename) +{ + FILE * f = fopen(filename->fileSystemRepresentation(), "wb"); + if (f == NULL) { + return ErrorFile; + } + + ErrorCode error = ErrorNone; + struct mailmime * mime = mimeAndFilterBccAndForEncryption(false, false); + + int col = 0; + int r = mailmime_write_file(f, &col, mime); + if (r != MAILIMF_NO_ERROR) { + error = ErrorFile; + } + + mailmime_free(mime); + + if (fclose(f) != 0) { + error = ErrorFile; + } + + return error; +} + String * MessageBuilder::htmlRendering(HTMLRendererTemplateCallback * htmlCallback) { MessageParser * message = MessageParser::messageParserWithData(data()); |