[KOE-168] Disabling local resolving for send-as

This commit is contained in:
Patrick Simpson 2018-03-19 14:57:11 +02:00
parent e81cb03281
commit 0e004b7937
1 changed files with 23 additions and 11 deletions

View File

@ -121,22 +121,34 @@ namespace Acacia.Features.SendAs
} }
private static readonly BoolOption OPTION_GAB_LOOKUP = new BoolOption("GABLookup", true); private static readonly BoolOption OPTION_GAB_LOOKUP = new BoolOption("GABLookup", true);
[AcaciaOption("Enables local resolving look ups for senders. This is disabled by default, as it seems " +
"local contacts may lead to wrong senders.")]
public bool ResolveLocal
{
get { return GetOption(OPTION_RESOLVE_LOCAL); }
set { SetOption(OPTION_RESOLVE_LOCAL, value); }
}
private static readonly BoolOption OPTION_RESOLVE_LOCAL = new BoolOption("ResolveLocal", false);
internal IRecipient FindSendAsSender(ZPushAccount zpush, GABUser user) internal IRecipient FindSendAsSender(ZPushAccount zpush, GABUser user)
{ {
// First try a simple resolve, this will work if the username is unique // First try a simple resolve, this will work if the username is unique
IRecipient recip = ThisAddIn.Instance.ResolveRecipient(user.UserName); if (ResolveLocal)
if (recip != null)
{ {
// If it's resolved, we're good. Otherwise dispose and continue IRecipient recip = ThisAddIn.Instance.ResolveRecipient(user.UserName);
if (recip.IsResolved) if (recip != null)
{ {
Logger.Instance.Trace(this, "Resolved send-as: {0}", recip.Name); // If it's resolved, we're good. Otherwise dispose and continue
return recip; if (recip.IsResolved)
} {
else Logger.Instance.Trace(this, "Resolved send-as: {0}", recip.Name);
{ return recip;
Logger.Instance.Trace(this, "Unresolved send-as: {0}", user.UserName); }
recip.Dispose(); else
{
Logger.Instance.Trace(this, "Unresolved send-as: {0}", user.UserName);
recip.Dispose();
}
} }
} }