• Столкнулся с проблемой

    Настроил на сайте плагин WP Mail SMTP через Gmail API. Все проверки проходят, почта отправляется. Через плагин Health Check тоже проверка wp_mail проходит.

    А вот если в коде использовать, не отрабатывает никак. Просто пустая страница, выполнение кода на функции останавливается и все. Куда копать непонятно.

    Даже такой простой код не работает

    <?php 
    	
    	$result = wp_mail('xxx@hotmail.com','subject','message');
    echo $result;
    
    ?>
    • Тема изменена 6 лет, 9 месяцев назад пользователем SeVlad. Причина: Оформляйте, пож, код как следует
Просмотр 15 ответов — с 1 по 15 (всего 20)
  • Даже такой простой код не работает

    И правильно что не работает. Если бы работало — это дырявый хостинг. 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.

    Мне нужно отправлять почту из кода, не совсем понимаю, что значит использовать плагин. Поясните, пожалуйста.

    Что Вы хотите отправлять «из кода» и как это связано с ВП?

Просмотр 15 ответов — с 1 по 15 (всего 20)
  • Тема «Не работает функция wp_mail, все проверки проходят» закрыта для новых ответов.