Даже такой простой код не работает
И правильно что не работает. Если бы работало — это дырявый хостинг. FROM должен быть в домене сайта.
Не изобретайте кривых и опасных костылей — используйте готовые плагины.
ЗЫ. Увидьте, плз, кнопку code
в форме форума.
-
Ответ изменён 6 лет, 9 месяцев назад пользователем SeVlad. Причина: del
Сорри, я слепой 🙂 не увидел, что речь про wp_mail
. Что-то показалось что функция php mail().
Но всё равно код неправильный. echo
не нужно.
См. https://developer.wordpress.org/reference/functions/wp_mail/#user-contributed-notes
Да пробовал и с обратным адресом.
Тоже самое(( Ничего не отправляется. Как траблшутить?
<?php
$to = ‘xxx@hotmail.com’;
$subject = ‘The subject’;
$body = ‘The email body content’;
$headers = array(‘Content-Type: text/html; charset=UTF-8’);
$headers[] = ‘From: WP <yyyy@gmail.com>’;
wp_mail( $to, $subject, $message, $headers );
?>
Модератор
Yui
(@fierevere)
永子
вы ЭТО вызываете как отдельный скрипт? А где у вас загрузка ядра WP?
оно вообще запускаться у вас не должно т.к. не определена функция wp_mail()
Ну в общем да) А как загрузить ядро? У меня это отдельный файл в папке темы, он затем должен вызываться из формы.
Извиняюсь за глупые вопросы, я просто начинаю только изучение WP.
Модератор
Yui
(@fierevere)
永子
<?php
require ('./wp-load.php');
Добавил, спасибо, теперь дальше код за функцией отрабатывает до конца, но почта не приходит. Ошибок не выдает.
Как дальше траблшутить?
Модератор
Yui
(@fierevere)
永子
если оно точно не выдает ошибок и отрабатывает (а чем вы проверяете код код возвращаемый функцией ?), то дальше только смотреть логи MTA или если используется плагин для переопределения wp_mail то его диагностику.
Функция wp_mail() достаточно примитивна, там нет особенного усложнения и она просто отдает почту в PHP mail(), которая в свою очередь вызывает sendmail на хосте и отдает почту ему.
Настроил на сайте плагин WP Mail SMTP через Gmail API
в плагине есть диагностика, ее пока не убрали, в случае проблем.
Я пробовал в плагине отправлять тестовую почту, все работает корректно, письмо от плагина приходит. Как еще диагностировать — непонятно, тут моих знаний не хватает(
Если выводить результат функции, то ничего не выводится, не ноль не единица.
Можно как-то включить лог или чтобы ошибки, если есть на странице выводились?
<?php
require (‘../../../wp-load.php’);
$to = ‘xxx@hotmail.com’;
$subject = ‘The subject 1’;
$body = ‘The email body content’;
$headers = array(‘Content-Type: text/html; charset=UTF-8’);
$headers[] = ‘From: WP <yyyy@gmail.com>’;
$result = wp_mail( $to, $subject, $message, $headers );
echo $result;
?>
Я пробовал в плагине отправлять тестовую почту, все работает корректно, письмо от плагина приходит.
Ну и используйте плагины. Не плодите костыле и дыр. Потратьте свои ресурсы на более продуктивные занятия.
Можно как-то включить лог или чтобы ошибки, если есть на странице выводились?
Если отправляется через ВП — то для ВП есть плагины логирования почты.
Зы. кнопу для вставки кода когда увидите?
Так я и установил и настроил плагин, он работает, тестовые сообщения отправляет корректно. Плагин Health Check тоже при проверке почты все отправляет. А вот функция wp_mail в коде php не отрабатывает. Что делаю не так?
Так я и установил и настроил плагин, он работает, тестовые сообщения отправляет корректно.
Используйте плагин который будет отправлять то, что Вам нужно.
В моем понимании, если плагин активирован, то wp_mail берет оттуда настройки и больше ничего делать не нужно.
Мне нужно отправлять почту из кода, не совсем понимаю, что значит использовать плагин. Поясните, пожалуйста.
-
Ответ изменён 6 лет, 9 месяцев назад пользователем spiminov.
Мне нужно отправлять почту из кода, не совсем понимаю, что значит использовать плагин. Поясните, пожалуйста.
Что Вы хотите отправлять «из кода» и как это связано с ВП?