From c65ce8978a496e1a2d678868fda1c480aee4c15e Mon Sep 17 00:00:00 2001 From: Michael McAndrew Date: Wed, 20 Jun 2018 20:04:01 +0100 Subject: [PATCH] dev/mail/15 deal better with spaces in from email address --- CRM/Admin/Form/Options.php | 5 +++-- ang/crmMailing/services.js | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CRM/Admin/Form/Options.php b/CRM/Admin/Form/Options.php index f68718d881..8897e24077 100644 --- a/CRM/Admin/Form/Options.php +++ b/CRM/Admin/Form/Options.php @@ -464,9 +464,10 @@ class CRM_Admin_Form_Options extends CRM_Admin_Form { $params['reset_default_for'] = array('filter' => "0, " . $params['filter']); } - //make sure we should has to have space, CRM-6977 + //make sure we only have a single space, CRM-6977 and dev/mail/15 if ($this->_gName == 'from_email_address') { - $params['label'] = str_replace('"<', '" <', $params['label']); + preg_match("/^\"(.*)\" *<([^@>]*@[^@>]*)>$/", $params['label'], $parts); + $params['label'] = "\"{$parts[1]}\" <$parts[2]>"; } } diff --git a/ang/crmMailing/services.js b/ang/crmMailing/services.js index cfaaeda2b1..e50a0a0f7a 100644 --- a/ang/crmMailing/services.js +++ b/ang/crmMailing/services.js @@ -5,7 +5,7 @@ // the available "From:" addrs. Records are like the underlying OptionValues -- but add "email" // and "author". angular.module('crmMailing').factory('crmFromAddresses', function ($q, crmApi) { - var emailRegex = /^"(.*)" <([^@>]*@[^@>]*)>$/; + var emailRegex = /^"(.*)" *<([^@>]*@[^@>]*)>$/; var addrs = _.map(CRM.crmMailing.fromAddress, function (addr) { var match = emailRegex.exec(addr.label); return angular.extend({}, addr, { -- 2.25.1