diff --git a/ActiveSync/NGMimeMessage+ActiveSync.m b/ActiveSync/NGMimeMessage+ActiveSync.m index 85fec63cd..7954d7f38 100644 --- a/ActiveSync/NGMimeMessage+ActiveSync.m +++ b/ActiveSync/NGMimeMessage+ActiveSync.m @@ -1,6 +1,6 @@ /* -Copyright (c) 2014, Inverse inc. +Copyright (c) 2015, Inverse inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -40,35 +40,39 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @implementation NGMimeMessage (ActiveSync) -- (NSArray *) allRecipients +- (void) _addRecipients: (NSEnumerator *) enumerator + toArray: (NSMutableArray *) recipients { - NSEnumerator *enumerator, *addressList; - NSMutableArray *recipients; NGMailAddressParser *parser; + NSEnumerator *addressList; NGMailAddress *address; NSString *s; + while ((s = [enumerator nextObject])) + { + parser = [NGMailAddressParser mailAddressParserWithString: s]; + addressList = [[parser parseAddressList] objectEnumerator]; + + while ((address = [addressList nextObject])) + [recipients addObject: [address address]]; + } +} + +- (NSArray *) allRecipients +{ + NSMutableArray *recipients; + NSEnumerator *enumerator; + recipients = [NSMutableArray array]; - enumerator = [[self headersForKey: @"to"] objectEnumerator]; - while ((s = [enumerator nextObject])) - { - parser = [NGMailAddressParser mailAddressParserWithString: s]; - addressList = [[parser parseAddressList] objectEnumerator]; - - while ((address = [addressList nextObject])) - [recipients addObject: [address address]]; - } + [self _addRecipients: [[self headersForKey: @"to"] objectEnumerator] + toArray: recipients]; - enumerator = [[self headersForKey: @"cc"] objectEnumerator]; - while ((s = [enumerator nextObject])) - { - parser = [NGMailAddressParser mailAddressParserWithString: s]; - addressList = [[parser parseAddressList] objectEnumerator]; - - while ((address = [addressList nextObject])) - [recipients addObject: [address address]]; - } + [self _addRecipients: [[self headersForKey: @"cc"] objectEnumerator] + toArray: recipients]; + + [self _addRecipients: [[self headersForKey: @"bcc"] objectEnumerator] + toArray: recipients]; return recipients; } diff --git a/ActiveSync/SOGoActiveSyncDispatcher.m b/ActiveSync/SOGoActiveSyncDispatcher.m index 0b481132a..9c3b0a3ee 100644 --- a/ActiveSync/SOGoActiveSyncDispatcher.m +++ b/ActiveSync/SOGoActiveSyncDispatcher.m @@ -2273,7 +2273,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. error = [self _sendMail: data recipients: [message allRecipients] - saveInSentItems: ([(id)[theDocumentElement getElementsByTagName: @"SaveInSentItems"] count] ? YES : NO)]; + saveInSentItems: ([(id)[theDocumentElement getElementsByTagName: @"SaveInSentItems"] count] ? YES : NO)]; if (error) { diff --git a/NEWS b/NEWS index ef3ca3c3b..855bebdb0 100644 --- a/NEWS +++ b/NEWS @@ -16,6 +16,7 @@ Bug fixes - reduced telephone number to a single value in JSON response of contacts list - fixed freebusy data when 'busy off hours' is enabled and period starts during the weekend - fixed fetching of freebusy data from the Web interface + - fixed EAS handling of Bcc in emails (#3138) 2.2.16 (2015-02-12) -------------------