Bug 1362130 - enable Send button when mailinglist name gets quoted. r=jcranmer
--- a/mail/components/compose/content/MsgComposeCommands.js
+++ b/mail/components/compose/content/MsgComposeCommands.js
@@ -5,16 +5,17 @@
/**
* Commands for the message composition window.
*/
// Ensure the activity modules are loaded for this window.
Components.utils.import("resource:///modules/activity/activityModules.js");
Components.utils.import("resource:///modules/attachmentChecker.js");
Components.utils.import("resource:///modules/cloudFileAccounts.js");
+Components.utils.import("resource:///modules/mimeParser.jsm");
Components.utils.import("resource:///modules/errUtils.js");
Components.utils.import("resource:///modules/folderUtils.jsm");
Components.utils.import("resource:///modules/iteratorUtils.jsm");
Components.utils.import("resource:///modules/mailServices.js");
Components.utils.import("resource:///modules/MailUtils.js");
Components.utils.import("resource://gre/modules/InlineSpellChecker.jsm");
Components.utils.import("resource://gre/modules/PluralForm.jsm");
Components.utils.import("resource://gre/modules/Services.jsm");
@@ -3194,20 +3195,24 @@ function updateSendLock()
const mailTypes = [ "addr_to", "addr_cc", "addr_bcc" ];
// Enable the send buttons if anything useable was entered into at least one
// recipient field.
for (let row = 1; row <= top.MAX_RECIPIENTS; row ++)
{
let popupValue = awGetPopupElement(row).value;
let inputValue = awGetInputElement(row).value.trim();
+ let listNames = null;
if ((mailTypes.includes(popupValue) &&
+ // a properly looking email address
(isValidAddress(inputValue) ||
- MailServices.ab.mailListNameExists(inputValue.replace(/ *<.*>/, "")))) ||
- ((popupValue == "addr_newsgroups") && (inputValue != "")))
+ // a valid mailing list name in some or our addressbooks
+ ((listNames = MimeParser.parseHeaderField(inputValue, MimeParser.HEADER_ADDRESS)) &&
+ listNames.length > 0 && MailServices.ab.mailListNameExists(listNames[0].name))
+ )) || ((popupValue == "addr_newsgroups") && (inputValue != "")))
{
gSendLocked = false;
break;
}
}
}
/**