@kot_matpockuh

Свой модуль «обратной связи» не отправляет письмо в joomla 3.1

Решил написать свой примитивный feedback, только с отправкой на почту, без подтверждений, тикетов и прочих функций.

Код здесь: https://dl.dropboxusercontent.com/u/59666091/mod_get_price.zip

мой mod_get_price.php:

<?php defined('_JEXEC') or die('Direct Access to this location is not allowed.');

require_once('helper.php');

JHTML::stylesheet('styles.css','modules/mod_get_price/css/');

$input = JFactory::getApplication()->input; // only once on each method
$form_send = $input->get('form_send', 'notsend');

switch($form_send){
    case 'send':

        $your_name = $input->get('your_name', 'No name');
        $your_question = $input->get('your_question', 'No question');

        $send = ModLittleContactHelper::SendMail($your_name, $your_question);
        echo 'Error sending email: ' . $send->message;
        if ( $send !== true ) {
            echo 'Error sending email: ' . $send->message;
        }

        require(JModuleHelper::getLayoutPath('mod_get_price', 'sendok_tmpl'));
        break;

    default:
        require(JModuleHelper::getLayoutPath('mod_get_price', 'default_tmpl'));
}

>


helper.php:

<?php defined('_JEXEC') or die('Direct Access to this location is not allowed.');

class ModLittleContactHelper{
public function SendMail($your_name, $your_question){

    $config = JFactory::getConfig();
    $sender = array($config->get( 'config.mailfrom' ), $config->get( 'config.fromname' ));
 
    $mail->setSender($sender);

    $mail->setSubject('Сообщение с сайта');
    $mail->addRecipient('info@**.su');

    $body = "Вопрос с сайта<br/>";
    $body.= "-------------------------<br/>";
    $body.= "Пользователь: ".$your_name."<br/>";
    $body.= "Вопрос: ".$your_question."<br/>";

    $mail->setBody($body);
    $mail->IsHTML(true);

    $send = $mailer->Send();

    return $send;
  }
}
>


остальные файлы можно найти в архиве выше...
почему письма не уходят, не пойму

  • Вопрос задан
  • 4999 просмотров
Решения вопроса 1
mobi
@mobi

А где собственно
$mail = JFactory::getMailer();

Ну и $mail, а не $mailer в
$send = $mail->Send();
как выше уже обратили внимание.

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nekt
@nekt
программист

Работа с почтовыми функциями зачастую нетривиальна из-за различий в настройках хостеров и их борьбе со спамом.

Насколько я помню - самая частая проблема заключается в адресе отправителя. Он должен совпадать с аккаунтом, доменом или чем-то там еще у хостера.

Но есть и другие варианты. Вот небольшой чеклист:
- Не знаю особенности жумлы, но хочу уточнить - переменные $mail и $mailer в хелпере откуда берутся?
- В лог ошибок что-нибудь пишется?
- Включен ли вывод ошибок? E_ALL?

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы