Электронная почта для сброса пароля Wordpress не работает - woocommerce и checkmail работают

У меня есть немного странная проблема на нашем сайте Wordpress, который в настоящее время находится в стадии разработки на поддомене нашего основного домена.

Это простой Wordpress с Woocommerce и парой других плагинов для платежей, ничего особенного. Я настроил Woocommerce, заказал несколько товаров, и все работает нормально. Я получаю письмо с подтверждением от электронной почты администратора, которую я указал. Допустим, [email protected], хотя веб-сайт размещен на new.example.com.

Теперь один из администраторов забыл свой пароль, поэтому он запросил новый, но электронное письмо не было доставлено. Я сделал некоторую отладку и сам тоже не получил, хотя я все еще получаю электронные письма Woocommerce.

Поэтому я погуглил и нашел плагин Check Email. По умолчанию он хотел использовать мой собственный @gmail для заголовка From, поэтому я протестировал его, но также и с пользовательским From: [email protected]. Я не получил письмо, отправленное из моего Gmail (очевидно), но я получил версию без ответа. Так что я уверен, что wp_mail() работает.

Это заставило меня задуматься, была ли старая настройка в таблице wp_options или в любой другой таблице. Итак, я искал их все для [email protected] и [email protected] во всех столбцах, в каждой строке. Я также выполнил поиск по всем файлам в каталоге wordpress/, чтобы увидеть, есть ли что-нибудь жестко запрограммированное (используя grep -rnw 'wordpress/' -e 'tried a couple varieties'). Я сделал это, потому что WordPress говорит следующее на странице настроек:

Dit adres wordt gebruikt voor administratieve doeleinden. Als je het wijzigt, sturen wij een e-mail naar je nieuwe address om het te bevestigen. Het nieuwe address zal niet actief worden voordat he bevestigd.

ПРИБЛИЗИТЕЛЬНО ПЕРЕВОД: этот адрес электронной почты будет использоваться для целей администрирования, если вы отредактируете, будет отправлено электронное письмо с подтверждением. Он не станет активным, пока не будет проверен.

Когда я впервые добавил этот адрес электронной почты, его еще даже не существовало, теперь почтовый ящик существует, но я не получаю новое письмо с подтверждением, после изменения его на другой адрес электронной почты в том же домене, на мой gmail, ничего.

Так что мне нужна ваша помощь... Что еще я могу попытаться решить эту проблему?

Обзор моих попыток

  • WooCommerce работает нормально
  • Плагин Check Email работает просто отлично, пока я использую любое электронное письмо от @example.com
  • Проверил всю базу данных на наличие старых настроек электронной почты, которые могли переопределить что-либо.
  • Проверил каждый файл в каталоге WordPress на наличие неправильного жестко запрограммированного адреса электронной почты.

Система

У меня есть установка Wordpress на Debian 10 Buster VPS с PHP7.4.


person Jelmer    schedule 01.04.2020    source источник


Ответы (1)


У меня всегда были проблемы с системой электронной почты WordPress, и в прошлом я часами ходил с ней по кругу. Первое, что я делаю при настройке нового сайта, — это отправляю его с помощью сервиса Amazon SES — вы можете настроить его через консоль AWS, и есть плагин по адресу https://en-gb.wordpress.org/plugins./wp-ses/, что позволяет легко добавлять настройки.

person Charlie McCluskey    schedule 01.04.2020
comment
Отличное предложение, обязательно возьму на заметку. 0,10 доллара за каждую 1000 электронных писем - это копейки ... Я не могу пометить это как ответ, потому что на самом деле это не решает основную проблему, с которой я столкнулся. Хотите разобраться, чем это вызвано. - person Jelmer; 02.04.2020
comment
Он надежный, пользуемся уже 3-4 года и менять не собираемся. По опыту, что бы вы ни использовали, если вы не отправляете из того же домена, на котором установлена ​​​​установка, ему это не нравится, но по умолчанию он пытается использовать вашу электронную почту из вашего профиля пользователя. - person Charlie McCluskey; 02.04.2020
comment
Еще одна вещь, которую следует учитывать, это то, что wp_mail() не имеет поддержки SPF/DKIM, поэтому вполне может быть, что они отправляются так, как должны быть, просто фильтры gmail/yahoo их отклоняют. WooCommerce может пройти, потому что они получают более высокий рейтинг по своему алгоритму и с меньшей вероятностью будут старым добрым спамом. - person Charlie McCluskey; 02.04.2020
comment
Я только что добавил 3x новых пользователей из установки dev wp, еще не работающей с SES — попробуйте то же самое и дайте мне знать, что вы получите. 1-й пользователь — добавьте Gmail или любой другой адрес электронной почты, к которому вы можете получить доступ. Второй пользователь добавляет ссылку на адрес электронной почты. Убедитесь, что вы выбрали «отправить новое электронное письмо пользователя» — я не получил Gmail, но получил временную почту и Outlook. Если вы получаете некоторые, но не другие, это проблема доставляемости/спама/доверия, а не что-то не так с вашим ядром WP. - person Charlie McCluskey; 02.04.2020
comment
RE: wp_mail() doesn't have any SPF/DKIM support (..) - Я понимаю, что вы имеете в виду, и да, это имеет смысл. Но я пробовал это и на временной почте, и тоже не работает. В Gmail и временной почте Check Email проходит отлично, если я уверен, что установил заголовок From на что-то из этого домена. Итак, очевидно, что записи SPF настроены нормально (что, я считаю, я сделал правильно), так что обратный вызов, кажется, работает (Received-SPF: pass (google.com: domain of [email protected] designates xxxx:xx:(..) as permitted sender)). - person Jelmer; 02.04.2020
comment
RE: but as a default it tries to use your email from your user profile - Любая идея, где я могу найти это в коде? Потому что тогда я мог бы жестко запрограммировать это на правильный адрес электронной почты и посмотреть, решит ли это проблему. Тогда, по крайней мере, я знаю первопричину. - person Jelmer; 02.04.2020
comment
Я полагаю, что электронная почта хранится с именем пользователя и паролем в таблице user как данные пользователя? Не в user_meta. Возможно, может помочь вход в базу данных и просмотр (изменение) этих деталей? - person Aliqua; 02.04.2020
comment
Когда вы получали электронные письма WooCommerce и Check Mail в прошлом, какой был адрес отправителя? wordpress@вашдомен? Вы указали это где-нибудь при установке этих плагинов? На панели инструментов в разделе «Настройки» > «Общие» есть поле адреса электронной почты администратора — это @yourdomain или gmail? - person Charlie McCluskey; 02.04.2020
comment
Если вам нужно изменить адрес электронной почты администратора, в базе данных он находится в опциях › admin_email. - person Charlie McCluskey; 02.04.2020