Как в Joomla! работает отправка почты?
Для отправки почты со своего сайта на Joomla! Вам не обязательно использовать сторонний модуль почты или библиотеку. Пользуйтесь встроенными средствами Joomla! для корретктной отправки почты из своих расширений. Joomla! обладает очень полезным классом JMail, с помощью всего нескольких строк кода, Вы можете отправить свое первое письмо с сайта Joomla!:
# определяем необходимые параметры
$subject = "You have a new message";
$body = "Here is the body of your message.";
$to = "
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
";
$from = array("
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
", "Brian Edgerton");
# создаем объект JMail класса
$mailer = JFactory::getMailer();
# присваиваем отправителя
$mailer->setSender($from);
# определяем получателя, тему и тело письма
$mailer->addRecipient($to);
$mailer->setSubject($subject);
$mailer->setBody($body);
# если хотите отправить письмо как HTML
$mailer->isHTML(true);
# отправляем письмо
$mailer->send();
Вот и все, что нужно сделать
для отправки почты средствами Joomla! Если вы хотите отправить копии письма другим получателям, включите следующие методы перед отправкой почты:
$mailer->addCC("
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
");
# Add a blind carbon copy
$mailer->addBCC("
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
");
Если хотите прикрепить к письму что-то:
$file = JPATH_SITE."/path/to/file.doc";
$mailer->addAttachment($file);
Для отправки почты средствами CMS Joomla! Вы также можете использовать
JMailHelper. Рассмотрим следующий пример:
# Import JMailHelper
jimport('joomla.mail.helper');
$to = JRequest::getVar('to', '', 'post');
$subject = JRequest::getVar('subject', '', 'post');
$body = JRequest::getVar('body', '', 'post');
$from = JRequest::getVar('from', '', 'post');
if (!JMailHelper::isEmailAddress($to) || !JMailHelper::isEmailAddress($from)) :
return false;
endif;
if (!JMailHelper::cleanAddress($to) || !JMailHelper::cleanAddress($from)) :
return false;
endif;
$subject = JMailHelper::cleanSubject($subject);
$body = JMailHelper::cleanText($body);
Такая отправка сообщений является более безопасной благодаря проверке параметров.
Комментарии
ВОПРОС: куда этот код надо добавить и как это работает
Необязательно. Это может быть вызвано конфликтом какого либо расширения с плагином emailcloak или подобным, который маскирует email адреса от спамботов.
попробуй заменить на что-нить другое.
Полезная статья. У меня возникла ошибка, и не могу понять откуда она взялась. Поделитесь пожалуйста мыслями на этот счет :)
Этот адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript, что бы его увидеть.