From e1c7e32f84811197582bd14b0080f6ae2f7d3a82 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 12 Nov 2022 22:37:15 +0100 Subject: [PATCH] fix(eas) improvement for bug #5612 (fixes #5640) --- ActiveSync/NGMimeMessage+ActiveSync.m | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ActiveSync/NGMimeMessage+ActiveSync.m b/ActiveSync/NGMimeMessage+ActiveSync.m index 2d5f3017c..bba4fb436 100644 --- a/ActiveSync/NGMimeMessage+ActiveSync.m +++ b/ActiveSync/NGMimeMessage+ActiveSync.m @@ -40,8 +40,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - (NSArray *) allRecipients { + NGMailAddressParser *parser; + NSEnumerator *addressList; NSMutableArray *allRecipients; - NSArray *recipients; + NGMailAddress *address; + NSEnumerator *recipients; + NSString *s; NSString *fieldNames[] = {@"to", @"cc", @"bcc"}; unsigned int count; @@ -49,9 +53,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. for (count = 0; count < 3; count++) { - recipients = [self headersForKey: fieldNames[count]]; - if ([recipients count] > 0) - [allRecipients addObjectsFromArray: recipients]; + recipients = [[self headersForKey: fieldNames[count]] objectEnumerator]; + while ((s = [recipients nextObject])) + { + parser = [NGMailAddressParser mailAddressParserWithString: s]; + addressList = [[parser parseAddressList] objectEnumerator]; + while ((address = [addressList nextObject])) + [allRecipients addObject: [address address]]; + } } return allRecipients;