diff --git a/ActiveSync/SOGoMailObject+ActiveSync.m b/ActiveSync/SOGoMailObject+ActiveSync.m index d16f97ad9..461f76db0 100644 --- a/ActiveSync/SOGoMailObject+ActiveSync.m +++ b/ActiveSync/SOGoMailObject+ActiveSync.m @@ -258,6 +258,38 @@ struct GlobalObjectId { return rc; } +// +// +// +- (NSString *) _personalNameFrom: (NSArray *) enveloppeAddresses +{ + NGImap4EnvelopeAddress *address; + NSString *email, *rc, *name; + NSMutableArray *addresses; + int i, max; + + rc = nil; + max = [enveloppeAddresses count]; + + if (max > 0) + { + addresses = [NSMutableArray array]; + for (i = 0; i < max; i++) + { + address = [enveloppeAddresses objectAtIndex: i]; + name = [address personalName]; + email = [NSString stringWithFormat: @"%@", (name ? name : [address baseEMail])]; + + if (email) + [addresses addObject: email]; + } + rc = [addresses componentsJoinedByString: @";"]; + } + + return rc; +} + + // // // @@ -859,7 +891,11 @@ struct GlobalObjectId { // If there are multiple e-mail addresses, they are separated by commas." value = [self _emailAddressesFrom: [[self envelope] to]]; if (value) - [s appendFormat: @"%@", [value activeSyncRepresentationInContext: context]]; + { + [s appendFormat: @"%@", [value activeSyncRepresentationInContext: context]]; + // DisplayTo - If there are multiple display names, they are separated by semi-colons. + [s appendFormat: @"%@", [self _personalNameFrom: [[self envelope] to]]]; + } // From value = [self _emailAddressesFrom: [[self envelope] from]]; @@ -881,9 +917,6 @@ struct GlobalObjectId { else [s appendFormat: @"%@", [[NSDate date] activeSyncRepresentationInContext: context]]; - // DisplayTo - [s appendFormat: @"%@", [[context activeUser] login]]; - // Cc - same syntax as the To field value = [self _emailAddressesFrom: [[self envelope] cc]]; if (value)