При возникновении подобной проблемы загляните в этот файл wp-includes/class-phpmailer.php - у меня ошибку выдавало на функцию public static function validateAddress ($address, $patternselect = 'auto') - типа не могло свалидировать почту через длинные регулярки.
В инете нашлось и не сколько обсуждений по этому поводу: первое и второе
Вообщем, если не отправляется почта в wordpress - идем в этот файлик и ищем нашу функцию. Привожу начало функции (как я у себя подправил):
public static function validateAddress($address, $patternselect = 'php') { //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 if (strpos($address, "\n") !== false or strpos($address, "\r") !== false) { return false; } if (!$patternselect or $patternselect == 'auto') { //Check this constant first so it works when extension_loaded() is disabled by safe mode //Constant was added in PHP 5.2.4 if (defined('PCRE_VERSION')) { //This pattern can get stuck in a recursive loop in PCRE <= 8.0.2 if (version_compare(PCRE_VERSION, '8.0.3') >= 0) { $patternselect = 'php'; } else { $patternselect = 'php'; } } elseif (function_exists('extension_loaded') and extension_loaded('pcre')) { //Fall back to older PCRE $patternselect = 'php'; } else { //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension if (version_compare(PHP_VERSION, '5.2.0') >= 0) { $patternselect = 'php'; } else { $patternselect = 'noregex'; } } }
все сводится к поиску $patternselect и приравниванию его к значению php
$patternselect = 'php';
только беда, что при очередном обновлении вордпресса - эти действия прийдется снова повторить. возможно есть код по переназначению этой функции в function.php?