diff --git a/NEWS b/NEWS index de3f185d6..35bba884d 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ master ------ +New features + - Internet headers are now shown in Outlook + Enhancements - Sharing request among different Outlook versions - Improve sync speed from Outlook by non-reprocessing already downloaded unread mails diff --git a/OpenChange/MAPIStoreMailMessage.m b/OpenChange/MAPIStoreMailMessage.m index c0ca8f9b6..11eb24d03 100644 --- a/OpenChange/MAPIStoreMailMessage.m +++ b/OpenChange/MAPIStoreMailMessage.m @@ -32,6 +32,7 @@ #import #import #import +#import #import #import #import @@ -1396,6 +1397,41 @@ _compareBodyKeysByPriority (id entry1, id entry2, void *data) : MAPISTORE_ERR_NOT_FOUND); } +- (int) getPidTagTransportMessageHeaders: (void **) data + inMemCtx: (TALLOC_CTX *) memCtx +{ + NSDictionary *mailHeaders; + NSEnumerator *keyEnumerator; + NSMutableArray *headers; + NGMimeMessageGenerator *g; + NSString *headerKey, *fullHeader, *headerGenerated; + id headerValue; + NSData *headerData; + + /* Let's encode each mail header and put them on 'headers' array */ + mailHeaders = [sogoObject mailHeaders]; + headers = [NSMutableArray arrayWithCapacity: [mailHeaders count]]; + + g = [[NGMimeMessageGenerator alloc] init]; + keyEnumerator = [mailHeaders keyEnumerator]; + while ((headerKey = [keyEnumerator nextObject])) + { + headerValue = [mailHeaders objectForKey: headerKey]; + + headerData = [g generateDataForHeaderField: headerKey value: headerValue]; + headerGenerated = [[NSString alloc] initWithData: headerData encoding:NSUTF8StringEncoding]; + fullHeader = [NSString stringWithFormat:@"%@: %@", headerKey, headerGenerated]; + [headerGenerated release]; + + [headers addObject: fullHeader]; + } + [g release]; + + *data = [[headers componentsJoinedByString:@"\n"] asUnicodeInMemCtx: memCtx]; + + return MAPISTORE_SUCCESS; +} + - (void) getMessageData: (struct mapistore_message **) dataPtr inMemCtx: (TALLOC_CTX *) memCtx {