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

lgmax

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

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

Использовал функцию 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

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

beliyadm

  • Легенда
  • 9629
  • 1658 / 66
  • Севастополь == Россия
Создайте в корне сайта (к примеру) файлик отправки, в нем используйте стандартное 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 »
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Записки нетрезвого кодера
Skype: beliyadm_pb
*

lgmax

  • Захожу иногда
  • 283
  • 1 / 1
Создайте в корне сайта (к примеру) файлик отправки, в нем используйте стандартное 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

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

Я создал файл в корне сайта 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

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

lgmax

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

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

beliyadm

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

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

Как выслать повторно письмо с активацией пользователя?

Автор baf28

Ответов: 6
Просмотров: 1173
Последний ответ 05.11.2020, 20:15:38
от Grigoriy82
Форма отправляет письмо от еmаil-пользователя

Автор mak200

Ответов: 17
Просмотров: 474
Последний ответ 02.12.2019, 09:07:58
от dm-krv
Форма обратной связи не отправляет письмо

Автор oskokos

Ответов: 5
Просмотров: 353
Последний ответ 17.07.2019, 14:08:10
от wishlight
Периодически приходит письмо с рекламой с моего сайта..

Автор Cedars

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

Автор Аня

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