0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 153 Просмотров
*

lgmax

  • Захожу иногда
  • 176
  • 1 / 0
Всем привет.

Хочу сделать уведомление админу, которое будет оправлять крон через какой-то промежуток времени.

Использовал функцию mail(), но необходимо использовать функцию отправки почты самой Joomla.

Вот мой вариант:
Код
<?php
$to = "news@site.info";
// емайл получателя
$subject = "Мониторинг цен";
// тема письма 
$message = "Здравствуйте.<br><br>Сегодня необходимо обновить текст на сайте.<br><br>С уважением, Администрация проекта.";
// текст сообщения
$mailheaders = "Content-type:text/html;charset=utf-8";
// формат письма HTML
$mailheaders .= "From: SiteRobot <no-reply@site.info>rn";
$mailheaders .= "Reply-To: no-reply@site.info";
// емайл отправителя и емайл для ответа
mail($to, $subject, $message, $mailheaders);
// отправляем письмо
?>

Письмо приходит, но не от того отправителя (no-reply@site.info) который я указывал.

Все почтовые ящики действующие.

Может как-то через Joomla сделать шаблон отправки, чтобы отправителем был основной е-майл сайта?
*

ProtectYourSite

  • Завсегдатай
  • 1714
  • 97 / 4
  • Безопасность вебсайтов
Смотрите в сторону этого, только не забудьте подключать фреймворк Joomla, если не используете расширения.
*

beliyadm

  • Легенда
  • 8862
  • 1624 / 63
  • Севастополь == Россия
Создайте в корне сайта (к примеру) файлик отправки, в нем используйте стандартное API движка и повесить на крон
Код
	// подключим фреймворк движка
define( '_JEXEC', 1 );

header('Content-Type: text/html; charset=utf-8');

if ( file_exists( __DIR__ . '/defines.php' ) ) {
    include_once __DIR__ . '/defines.php';
}
if ( !defined( '_JDEFINES' ) ) {
    define( 'JPATH_BASE', __DIR__ . '/../../' );
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';

$subject = 'Тема';
$body = 'Сообщение';

$mailer = JFactory::getMailer();
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->setBody($body);
$mailer->setSender('no-reply@site.ru');
$mailer->addRecipient('admin@site.ru'); 
$send = $mailer->Send();

Дополнение, если этот файл создавать в корне сайта то изменить путь к подключаемым файлам, для корня строка до подключения defines.php будет такая
Код
define( 'JPATH_BASE', __DIR__ . '' );
« Последнее редактирование: 06.03.2018, 14:25:25 от beliyadm »
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

lgmax

  • Захожу иногда
  • 176
  • 1 / 0
Создайте в корне сайта (к примеру) файлик отправки, в нем используйте стандартное API движка и повесить на крон
Код
	// подключим фреймворк движка
define( '_JEXEC', 1 );

header('Content-Type: text/html; charset=utf-8');

if ( file_exists( __DIR__ . '/defines.php' ) ) {
    include_once __DIR__ . '/defines.php';
}
if ( !defined( '_JDEFINES' ) ) {
    define( 'JPATH_BASE', __DIR__ . '/../../' );
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';

$subject = 'Тема';
$body = 'Сообщение';

$mailer = JFactory::getMailer();
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->setBody($body);
$mailer->setSender('no-reply@site.ru');
$mailer->addRecipient('admin@site.ru'); 
$send = $mailer->Send();


Спасибо, друже!
*

lgmax

  • Захожу иногда
  • 176
  • 1 / 0
Че-то не оправляется.

Я создал файл в корне сайта monitoring.php

Далее, в сам файл поместил код:

Код
<?php
// подключим фреймворк движка
define( '_JEXEC', 1 );

header('Content-Type: text/html; charset=utf-8');

if ( file_exists( __DIR__ . '/defines.php' ) ) {
    include_once __DIR__ . '/defines.php';
}
if ( !defined( '_JDEFINES' ) ) {
    define( 'JPATH_BASE', __DIR__ . '/../../' );
    require_once JPATH_BASE . '/includes/defines.php';
}
require_once JPATH_BASE . '/includes/framework.php';

$subject = 'Тема';
$body = 'Текст';

$mailer = JFactory::getMailer();
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->setBody($body);
$mailer->setSender('no-reply@site.info');
$mailer->addRecipient('news@site.info'); 
$send = $mailer->Send();
?>

Перешел по ссылки http://site.info/monitoring.php.

На почту ни чего не пришло.

Я что-то не так сделал?
*

beliyadm

  • Легенда
  • 8862
  • 1624 / 63
  • Севастополь == Россия
Ну так а адреса почты отправителя\получателя изменили на свои? :)
site.info то редиректит на какого-то регистратора домена, я ж для примера указал
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

lgmax

  • Захожу иногда
  • 176
  • 1 / 0
Ну так а адреса почты отправителя\получателя изменили на свои? :)
site.info то редиректит на какого-то регистратора домена, я ж для примера указал

Ну конечно!)))
*

beliyadm

  • Легенда
  • 8862
  • 1624 / 63
  • Севастополь == Россия
Потому что код я взял свой, у меня этот файл лежит в папке шаблона, пути надо менять, измени это до подключения defines.php
Код
define( 'JPATH_BASE', __DIR__ . '' );

P.S. у тебя на сервере исправил, мне письмо пришло тестовое, посмотри на обновленный код
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Периодически приходит письмо с рекламой с моего сайта..

Автор Cedars

Ответов: 6
Просмотров: 134
Последний ответ 08.10.2018, 12:45:26
от Cedars
Дополнительные поля пользователя внести в письмо админу

Автор Аня

Ответов: 1
Просмотров: 288
Последний ответ 06.09.2017, 17:17:34
от Septdir
Приветственное письмо

Автор miklman

Ответов: 8
Просмотров: 286
Последний ответ 27.06.2017, 09:08:06
от dmitry_stas
Письмо с подтверждением регистрации не дошло

Автор Mick_20

Ответов: 3
Просмотров: 234
Последний ответ 15.06.2017, 11:12:37
от ProtectYourSite
Компоненты-Сообщения-Создать личное сообщение-?wtf Нет пользователей. Как отправить письмо пользов

Автор Dannik

Ответов: 4
Просмотров: 453
Последний ответ 26.03.2017, 16:11:58
от Sulpher