fix(mail): use default signature when forcing default identity

pull/299/head
Francis Lachapelle 2021-05-25 14:17:12 -04:00
parent d4a0b25c06
commit dc81f70928
3 changed files with 21 additions and 17 deletions

View File

@ -30,7 +30,7 @@
SOGoMailObject *sourceMail;
NSString *field;
NSString *currentValue;
BOOL htmlComposition;
BOOL htmlComposition, forceDefaultIdentity;
NSString *signaturePlacement;
}

View File

@ -42,8 +42,8 @@
if ((self = [super init]))
{
ud = [[context activeUser] userDefaults];
htmlComposition
= [[ud mailComposeMessageType] isEqualToString: @"html"];
htmlComposition = [[ud mailComposeMessageType] isEqualToString: @"html"];
forceDefaultIdentity = [ud mailForceDefaultIdentity];
sourceMail = nil;
currentValue = nil;
}
@ -243,23 +243,27 @@
NSString *email, *signature, *mailSignature, *nl, *space;
int count, max;
fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
if (fromSentMailbox)
addresses = [sourceMail fromEnvelopeAddresses];
else
addresses = [sourceMail toEnvelopeAddresses];
identity = nil;
mailSignature = @"";
max = [addresses count];
if (max)
if (!forceDefaultIdentity)
{
// Pick the first email matching one of the account's identities
for (count = 0; !identity && count < max; count++)
fromSentMailbox = [[sourceMail container] isKindOfClass: [SOGoSentFolder class]];
if (fromSentMailbox)
addresses = [sourceMail fromEnvelopeAddresses];
else
addresses = [sourceMail toEnvelopeAddresses];
max = [addresses count];
if (max)
{
address = [addresses objectAtIndex: count];
email = [address baseEMail];
identity = [[sourceMail mailAccountFolder] identityForEmail: email];
// Pick the first email matching one of the account's identities
for (count = 0; !identity && count < max; count++)
{
address = [addresses objectAtIndex: count];
email = [address baseEMail];
identity = [[sourceMail mailAccountFolder] identityForEmail: email];
}
}
}

View File

@ -1309,8 +1309,8 @@ static NSArray *reminderValues = nil;
[target setObject: identities forKey: @"SOGoMailIdentities"];
if ([[account objectForKey: @"forceDefaultIdentity"] boolValue])
[target setObject: [NSNumber numberWithBool: YES] forKey: @"SOGoMailForceDefaultIdentity"];
else if ([target objectForKey: @"SOGoMailforceDefaultIdentity"])
[target removeObjectForKey: @"SOGoMailforceDefaultIdentity"];
else if ([target objectForKey: @"SOGoMailForceDefaultIdentity"])
[target removeObjectForKey: @"SOGoMailForceDefaultIdentity"];
[self _extractMainReceiptsPreferences: [account objectForKey: @"receipts"] inDictionary: target];
[self _extractMainSecurityPreferences: [account objectForKey: @"security"] inDictionary: target];
}