Мы обновили WordPress с версии 4.1 до 4.7.3. Все работает, кроме почты, которая содержит новый пароль, когда пользователь сбрасывает пароль. Пароль все еще сбрасывается, но письмо с паролем сброса не получается, что делает невозможным вход в систему. Насколько мне известно, это единственная почта, которая не работает, регистрация почты и тому подобное все еще работает.
В коде не должно быть ничего плохого, он работал годами. Но что-то явно было испорчено при обновлении. При попытке отправить письмо возникает следующая ошибка.
PHP Fatal error: Uncaught exception 'phpmailerException' with message 'Invalid address: (setFrom) service' in /var/www/site-adress/public_html/wp/wp-includes/class-phpmailer.php:1023
Stack trace:
#0 /var/www/site-adress/public_html/wp/wp-includes/pluggable.php(352): PHPMailer->setFrom('service', 'WordPress', false)
#1 /var/www/site-adress/public_html/wp-content/themes/site/functions.php(320): wp_mail('dummy.mail...', 'Site: passwor...', 'Your new passwo...', 'From: service')
#2 [internal function]: {closure}('')
#3 /var/www/site-adress/public_html/wp/wp-includes/class-wp-hook.php(298): call_user_func_array(Object(Closure), Array)
#4 /var/www/site-adress/public_html/wp/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array)
#5 /var/www/site-adress/public_html/wp/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#6 /var/www/site-adress/public_html/wp/wp-admin/admin-ajax.php(101): do_action in /var/www/site-adress/public_html/wp/wp-includes/class-phpmailer.php on line 1023
Кто-нибудь знает, как это должно быть решено? Что эта информация означает? В чем проблема?
Спасибо, раньше времени.
Вы можете переопределить адрес электронной почты для этих писем, добавив в свою тему следующее functions.php
:
add_filter( 'wp_mail_from', 'new_mail_from' );
add_filter( 'wp_mail_from_name', 'new_mail_from_name' );
function new_mail_from( $old ) {
return get_option( 'admin_email' );
}
function new_mail_from_name( $old ) {
return get_option( 'blogname' );
}
Затем используйте Settings > General
внутри WordPress, чтобы изменить адрес электронной почты и имя сайта.
Спасибо PS ниже, кто разъясняет: этот код может быть сброшен в functions.php
Файл темы КАК ЕСТЬ, без изменений. Затем вы используете интерфейс администратора WordPress для изменения адреса электронной почты отправителя (поле «Адрес электронной почты» на странице «Настройки»> «Общие»).
PHPMailer говорит, что не может отправить, потому что адрес «от», который вы просили его использовать, недействителен. Было установлено service
, который никуда не денется. Вам нужно найти, где этот адрес установлен в вашей конфигурации WordPress, и обновить его до нужного адреса электронной почты, и тогда PHPMailer сможет работать.
Я должен был отключить плагины, чтобы он работал