Skip to content

Commit

Permalink
Merge pull request #270 from tfux/4988
Browse files Browse the repository at this point in the history
fix(eas): fix invalid DisplayTo (fixes #4988)
  • Loading branch information
extrafu committed Mar 22, 2020
2 parents e8e41f1 + b8f3106 commit 45eeb5f
Showing 1 changed file with 37 additions and 4 deletions.
41 changes: 37 additions & 4 deletions ActiveSync/SOGoMailObject+ActiveSync.m
Expand Up @@ -258,6 +258,38 @@ - (NSString *) _emailAddressesFrom: (NSArray *) enveloppeAddresses
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;
}


//
//
//
Expand Down Expand Up @@ -859,7 +891,11 @@ - (NSString *) activeSyncRepresentationInContext: (WOContext *) _context
// If there are multiple e-mail addresses, they are separated by commas."
value = [self _emailAddressesFrom: [[self envelope] to]];
if (value)
[s appendFormat: @"<To xmlns=\"Email:\">%@</To>", [value activeSyncRepresentationInContext: context]];
{
[s appendFormat: @"<To xmlns=\"Email:\">%@</To>", [value activeSyncRepresentationInContext: context]];
// DisplayTo - If there are multiple display names, they are separated by semi-colons.
[s appendFormat: @"<DisplayTo xmlns=\"Email:\">%@</DisplayTo>", [self _personalNameFrom: [[self envelope] to]]];
}

// From
value = [self _emailAddressesFrom: [[self envelope] from]];
Expand All @@ -881,9 +917,6 @@ - (NSString *) activeSyncRepresentationInContext: (WOContext *) _context
else
[s appendFormat: @"<DateReceived xmlns=\"Email:\">%@</DateReceived>", [[NSDate date] activeSyncRepresentationInContext: context]];

// DisplayTo
[s appendFormat: @"<DisplayTo xmlns=\"Email:\">%@</DisplayTo>", [[context activeUser] login]];

// Cc - same syntax as the To field
value = [self _emailAddressesFrom: [[self envelope] cc]];
if (value)
Expand Down

0 comments on commit 45eeb5f

Please sign in to comment.