Details
Description
Due to a malformed regular expression in Bounce Pattern table, messages bounced with a reason of "over quota" are not recognized and immediately put on hold.
The SQL that builds the bounce table inserts the string 'over\s?quota', but the resulting pattern in the table becomes 'overs?quota'. The backslash in the original expression is dropped because it is not escaped. It turns out, though, that the attempt to ignore multiple whitespace chars is not needed, because multiple whitespaces are already replaced by a single space in CRM_Mailing_BAO_BouncePattern::match() before the match is attempted. The fix is to simply modify the SQL to insert the simple pattern 'over quota'.