Решил написать свой примитивный 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'));
}
>
<?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;
}
}
>
А где собственно$mail = JFactory::getMailer();
Ну и $mail, а не $mailer в$send = $mail->Send();
как выше уже обратили внимание.
Работа с почтовыми функциями зачастую нетривиальна из-за различий в настройках хостеров и их борьбе со спамом.
Насколько я помню - самая частая проблема заключается в адресе отправителя. Он должен совпадать с аккаунтом, доменом или чем-то там еще у хостера.
Но есть и другие варианты. Вот небольшой чеклист:
- Не знаю особенности жумлы, но хочу уточнить - переменные $mail и $mailer в хелпере откуда берутся?
- В лог ошибок что-нибудь пишется?
- Включен ли вывод ошибок? E_ALL?