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

uncleric

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Здравствуйте! Появилась необходимость каждому новому пользователю, который регистрируется на сайте - отправлять письмо приветствие!
Точнее, сначала он получает письмо с запросом на активацию, его то изменить можно, но не нужно...
А потом, после активации - он должен получить письмо с необходимым мне содержанием!
Кто может посоветовать где копать, или может уже есть готовые решения, но я не нашел?
Буду очень благодарен, спасибо!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
А потом, после активации - он должен получить письмо с необходимым мне содержанием!
Кто может посоветовать где копать, или может уже есть готовые решения, но я не нашел?
components\com_user\controller.php
Код
function activate()
{
...
}
*

uncleric

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Я буду просто ЧРЕЗМЕРНО благодарен, если еще напишите, какой php скрипт надо вставить на место троеточия... СПАСИБО!
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Я буду просто ЧРЕЗМЕРНО благодарен, если еще напишите, какой php скрипт надо вставить на место троеточия... СПАСИБО!
как говориться "и рыбку съесть, и на х||й сесть", а мозгами пошевелить никак.
В этой функции после строчек
Код: php
		// Do we even have an activation string?
$activation = JRequest::getVar('activation', '', '', 'alnum' );
$activation = $db->getEscaped( $activation );
добавляем
Код: php
		$db = & JFactory::getDBO();
$query = 'SELECT id'
. ' FROM #__users'
. ' WHERE activation = '.$db->Quote($activation)
. ' AND block = 1';
$db->setQuery( $query );
$id = intval( $db->loadResult() );
$user =& JUser::getInstance( (int) $id );
Дальше после строчек, т.е. если активация прошла успешно
Код: php
			$message->title = JText::_( 'REG_ACTIVATE_COMPLETE_TITLE' );
$message->text = JText::_( 'REG_ACTIVATE_COMPLETE' );
добавляем
Код: php
			$mailfrom 		= $mainframe->getCfg( 'mailfrom' );
$fromname = $mainframe->getCfg( 'fromname' );
$subject = 'TITLE EMAIL';
$message = 'BODY EMAIL';
JUtility::sendMail($mailfrom, $fromname, $user->email, $subject, $message);
*

uncleric

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Спасибо! Вот это я понимаю помог! Все работает, кроме одного момента.
Когда пользователь переходит по ссылке активации, то видит пустую страницу на сайте там, где обычно написан текст: "Спасибо, активация завершена и т.д."
Письмо в ответ уходит... Где может быть проблема?
Пробовал размещать этот код чуть под другому, но в результате только ошибки на странице.

*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
заменить
Код: php
			$message = 'BODY EMAIL';
JUtility::sendMail($mailfrom, $fromname, $user->email, $subject, $message);
на
Код: php
			$msg = 'BODY EMAIL';
JUtility::sendMail($mailfrom, $fromname, $user->email, $subject, $msg);

В принципе можно вставить эту байду в libraries\joomla\user\helper.php
после строчек
Код
			$user->set('block', '0');
$user->set('activation', '');
вставить
Код: php
                        global $mainframe;
$mailfrom = $mainframe->getCfg( 'mailfrom' );
$fromname = $mainframe->getCfg( 'fromname' );
$subject = 'TITLE EMAIL';
$message = 'BODY EMAIL';
JUtility::sendMail($mailfrom, $fromname, $user->email, $subject, $message);

тогда не нужно будет делать лишний запрос к БД.
« Последнее редактирование: 09.08.2010, 20:48:44 от SmokerMan »
*

uncleric

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Сделал как сказали и все заработало! Вы меня очень выручили, спасибо!
Есть еще один аналогичный вопрос, но по phpBB форуму... после регистрации на сайте или форуме, нужно что-бы пользователь получал аналогичное письмо не на почту, а в личные сообщения на форуме... Не сталкивались с подобными задачами? Готов сбросить пару WMZ на пиво :)
« Последнее редактирование: 09.08.2010, 21:15:23 от uncleric »
*

andreyvw

  • Новичок
  • 4
  • 0 / 0
А как изменить само письмо об активации?
Где оно лежит?
тупо тут добавить? ^-^

.../language/ru-RU/ru-RU.com_user.ini

или как то можно по другому?
« Последнее редактирование: 26.01.2011, 19:11:36 от andreyvw »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не отправляется письмо с кодом восстановления пароля по SMTP

Автор Disdain

Ответов: 1
Просмотров: 2991
Последний ответ 24.08.2018, 19:14:22
от Disdain
письмо об подтверждении активации

Автор radiant

Ответов: 4
Просмотров: 2278
Последний ответ 09.12.2015, 09:45:32
от capricorn
Как отправить письмо? Ошибка: Письмо не может быть отправлено (com_mailto)

Автор Alexpro2011

Ответов: 11
Просмотров: 4538
Последний ответ 17.11.2014, 13:40:17
от sergeosn
Компонент контакты - нет сообщеня про отправленое письмо

Автор palexa

Ответов: 14
Просмотров: 3420
Последний ответ 27.06.2012, 22:33:16
от mortias
Как на сайт прикрутить почту?

Автор Mefody66

Ответов: 4
Просмотров: 3227
Последний ответ 18.06.2012, 10:32:49
от Mefody66