У меня есть multisite enabled wordpress configurtaion, который говорит, что мой основной домен – http://www.example.com . Он имеет несколько поддоменов, таких как http://test1.example.com , http://test2.example.com и т. Д.
Я написал функцию в файле функций моей многопользовательской темы, где я хотел бы отправить некоторые уведомления пользователям с несколькими пользователями.
$headers[] = 'Content-Type: text/html; charset=UTF-8'; wp_mail('user@example.com', 'Test','Test', $headers);
Он отправляет письма по желанию в функции основного домена, но не отправляет почтовые сообщения при использовании в файлах поддоменов.
FYI, user@example.com
является зарегистрированным пользователем, скажем, http://test1.example.com, и он отправляет некоторую информацию на своей странице поддомена: http://test1.example.com/information-form, и я хотел отправить эту информацию по электронной почте этого пользователя.
EDIT: Сценарии:
add_action('wp_ajax_xxx', 'myFunction');
перетащить на страницу функций (Пользователь вошел в систему) myFunction
указан вышеупомянутый код. Наконец, я выяснил причину и решение моей проблемы выше. Когда я пытаюсь отправить электронное письмо в поддомену, скажем http://test1.example.com , без wp_mail()
Из адреса электронной почты в заголовке сама функция wp_mail()
устанавливает адрес электронной почты From
как support@test1.example.com
который является недопустимым и поэтому письмо не было отправлено. Поэтому, чтобы решить эту проблему, я добавил пользовательский вариант From
электронной почты до заголовка, как $headers[] = 'From: Sender Name <noreply@example.com>';
который устанавливает действительный адрес электронной почты.
BTW, можно также настроить такие же фильтры, как,
add_filter('wp_mail_from', function( $email ) { return 'noreply@example.com'; }); add_filter('wp_mail_from_name', function( $name ) { return 'Sender Name'; });