Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Email on birthday - Рассылка поздравлений

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
mokvo4
phpBB 1.4.2
Сообщения: 64
Стаж: 9 лет 1 месяц
Откуда: Санкт-Петербург
Благодарил (а): 10 раз
Поблагодарили: 11 раз
Контактная информация:

Email on birthday - Рассылка поздравлений

Сообщение mokvo4 »

На сайте https://github.com/ForumHulp/emailonbirthday нашел для Phpbb 3.1. расширение отправить каждому пользователю email на его / ее день рождения

Расширение исправленное
На данный момент март 2017г все работает отлично письма с открытками отправляются по хрону, не зависимо от зарегистрированных посетителей зашедших на форум
forumhulp_emailonbirthday_3_1_4.zip
(29.13 КБ) 332 скачивания
Устанавливаем расширение forumhulp/emailonbirthday Phpbb 3.1. расширение отправить каждому пользователю email на его / ее день рождения

Чтобы в письмах отправлять открытки надо в файле includes/functions_messenger.php
примерно в строке 440
найти

Код: Выделить всё

$headers[] = 'Content-Type: text/plain; charset=UTF-8'; // format=flowed
заменить на

Код: Выделить всё

$headers[] = 'Content-Type: text/html; charset=UTF-8';
e-mail письмо отредактируйте в HTML на свой вкус \forumhulp\emailonbirthday\language\ru\email\emailonbirthday.txt
После включения расширений настроить:
в админпанели - Функции конференции
выбрать "да" - Е-mail на день рождения: Отправить каждому пользователю email на его / ее день рождения

Все руссифицыровано
Последний раз редактировалось mokvo4 17.04.2020 10:51, всего редактировалось 3 раза.
Аватара пользователя
mokvo4
phpBB 1.4.2
Сообщения: 64
Стаж: 9 лет 1 месяц
Откуда: Санкт-Петербург
Благодарил (а): 10 раз
Поблагодарили: 11 раз
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение mokvo4 »

Beer писал(а): 02.02.2018 15:30Использование HTML в электронной почте: Отправить на день рождения email в HTML- вместо простого текста.
Да Нет(Возможно только с поддержкой расширения, forumhulp\htmlemail)
выбрать: "НЕТ"
Аватара пользователя
Beer
phpBB 2.0.9
Сообщения: 708
Стаж: 12 лет 8 месяцев
Благодарил (а): 193 раза
Поблагодарили: 69 раз

Re: Email on birthday - Рассылка поздравлений

Сообщение Beer »

Ну тогда я все правильно сделал. Строчку отредактирую для себя - чтобы не забыть. Неплохо бы добавить в архив первого сообщения, чтобы танкисты типо меня не путались. :?
Сконвертировался с SMF2 в phpBB3.2
Аватара пользователя
angst66
phpBB 3.0.0 RC1
Сообщения: 1469
Стаж: 12 лет 2 месяца
Благодарил (а): 86 раз
Поблагодарили: 149 раз

Re: Email on birthday - Рассылка поздравлений

Сообщение angst66 »

Даже не знаю куда смотреть, поставил, крон заблокировался.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Sheer »

angst66 писал(а): 22.02.2018 22:40не знаю куда смотреть
В error.log
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
angst66
phpBB 3.0.0 RC1
Сообщения: 1469
Стаж: 12 лет 2 месяца
Благодарил (а): 86 раз
Поблагодарили: 149 раз

Re: Email on birthday - Рассылка поздравлений

Сообщение angst66 »

Вот из лога после установки.

Код: Выделить всё

[Thu Feb 22 20:18:24.355759 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: PHP Fatal error:  Uncaught Error: Call to undefined function forumhulp\\emailonbirthday\\lang_manager\\split() in /var/www/angst66/data/www/dalnoboi.pro/forum/ext/forumhulp/emailonbirthday/lang_manager/manager.php:56, referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.355861 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: Stack trace:, referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356144 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: #0 /var/www/angst66/data/www/dalnoboi.pro/forum/ext/forumhulp/emailonbirthday/cron/task/core/birthday.php(81): forumhulp\\emailonbirthday\\lang_manager\\manager->numbertext('50', 'ru'), referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356276 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: #1 [internal function]: forumhulp\\emailonbirthday\\cron\\task\\core\\birthday->run(), referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356460 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: #2 /var/www/angst66/data/www/dalnoboi.pro/forum/phpbb/cron/task/wrapper.php(104): call_user_func_array(Array, Array), referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356661 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: #3 /var/www/angst66/data/www/dalnoboi.pro/forum/cron.php(78): phpbb\\cron\\task\\wrapper->__call('run', Array), referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356688 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215: #4 {main}, referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
[Thu Feb 22 20:18:24.356906 2018] [cgi:error] [pid 8873] [client 165.227.6.129:36612] AH01215:   thrown in /var/www/angst66/data/www/dalnoboi.pro/forum/ext/forumhulp/emailonbirthday/lang_manager/manager.php on line 56, referer: https://dalnoboi.pro/forum/viewtopic.php?t=291
2018/02/22 20:18:24 [warn] 26640#26640: *27944984 upstream sent more data than specified in "Content-Length" header while reading upstream, client: 165.227.6.129, server: dalnoboi.pro, request: "GET /forum/cron.php?cron_type=forumhulp.cron.emailonbirthday&sid=e71a8bca2f7414154498eaf63bc78d48 HTTP/1.1", upstream: "http://127.0.0.1:8080/forum/cron.php?cron_type=forumhulp.cron.emailonbirthday&sid=e71a8bca2f7414154498eaf63bc78d48", host: "dalnoboi.pro", referrer: "https://dalnoboi.pro/forum/viewtopic.php?t=291"
Отправлено спустя 1 минуту 29 секунд:
Может версия php не подходит?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Sheer »

Не подходит.
angst66 писал(а): 22.02.2018 23:04Call to undefined function forumhulp\\emailonbirthday\\lang_manager\\split()
http://php.net/manual/ru/function.split.php
Внимание Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.
Замени split на explode
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
angst66
phpBB 3.0.0 RC1
Сообщения: 1469
Стаж: 12 лет 2 месяца
Благодарил (а): 86 раз
Поблагодарили: 149 раз

Re: Email on birthday - Рассылка поздравлений

Сообщение angst66 »

Sheer, спасибо огромное, крон разблокировало. У кого будет такая проблема, после всего пусть кэш в админке почистит.
Clear
phpBB 1.2.1
Сообщения: 20
Стаж: 8 лет 2 месяца
Благодарил (а): 4 раза

Re: Email on birthday - Рассылка поздравлений

Сообщение Clear »

mokvo4 писал(а): 02.02.2018 15:22 У меня на 3.2.2 расширение emailonbirthday работает отлично и письма отсылает с картинками
вот полностью рабочее расширение со всеми исправлениями
emailonbirthday.zip
Всем привет!
Установил себе на 3.1.12 эту версию и возникли вопросы:
1. Почему при рассылке писем не игнорируются заблокированные пользователи? Как это исправить?
2. Где-нибудь ведутся логи отправок? Как посмотреть кому было отправлено письмо с поздравлением?
3. Как можно вручную проверить отправку писем? Может есть какое-то полезное расширение для отладки? Буду благодарен за линк.

Об отправке заблокированным узнал по ошибке доставки, хорошо, что отправка идёт через SMTP.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Siava »

Clear писал(а): 02.03.2018 13:54 2. Где-нибудь ведутся логи отправок?
ACP > Обслуживание > Лог администраторов
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Sheer »

Clear писал(а): 02.03.2018 13:54 Как это исправить?
По идее открыть ./ext/forumhulp/emailonbirthday/cron/task/core/birthday.php
Найти

Код: Выделить всё

		$sql = 'SELECT user_id, username, user_email, user_lang, 
				YEAR(CURRENT_TIMESTAMP) - YEAR(str_to_date(user_birthday, "%d-%m-%Y")) AS age
				FROM ' . USERS_TABLE . ' 
				WHERE user_birthday <> " 0- 0-   0" AND user_birthday <> "" AND 
				(user_birthday LIKE "' . $this->db->sql_escape(sprintf("%2d-%2d-", $now["mday"], $now["mon"])) . '%"' . $leap_year_birthdays . ') AND 
				email_on_birthday + 86400 < UNIX_TIMESTAMP(now())';
Заменить на

Код: Выделить всё

		$sql = 'SELECT user_id, username, user_email, user_lang, 
				YEAR(CURRENT_TIMESTAMP) - YEAR(str_to_date(user_birthday, "%d-%m-%Y")) AS age
				FROM ' . USERS_TABLE . ' 
				WHERE user_birthday <> " 0- 0-   0" AND user_birthday <> "" AND 
				(user_birthday LIKE "' . $this->db->sql_escape(sprintf("%2d-%2d-", $now["mday"], $now["mon"])) . '%"' . $leap_year_birthdays . ') AND
				email_on_birthday + 86400 < UNIX_TIMESTAMP(now())
				AND user_id NOT IN(SELECT ban_userid FROM ' . BANLIST_TABLE . ')';
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Clear
phpBB 1.2.1
Сообщения: 20
Стаж: 8 лет 2 месяца
Благодарил (а): 4 раза

Re: Email on birthday - Рассылка поздравлений

Сообщение Clear »

Siava, Sheer, спасибо!!!

Допиливаем дальше)
mokvo4 писал(а): 02.02.2018 15:22 Чтобы в письмах отправлять открытки надо в файле includes/functions_messenger.php
в строке 487

найти:

Код: Выделить всё

$headers[] = 'Content-Type: text/plain; charset=UTF-8'; // format=flowed


заменить на:

Код: Выделить всё

$headers[] = 'Content-Type: text/html; charset=UTF-8';

после этого надо отредактировать Ваше письмо в формате html.
forumhulp\emailonbirthday\language\ru\email\emailonbirthday.txt это и есть Ваше письмо.
Сделал по инструкции, но файл includes/functions_messenger.php, если я правильно понимаю, относится к ядру и теперь все письма отправляются в HTML-формате, т.е. текстовые шаблоны теряют как минимум, переносы строк. Есть возможность централизованно это поправить? А то не очень хочется после очередного обновления идти по этому же кругу и все править заново.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Sheer »

Clear писал(а): 02.03.2018 18:42 надо в файле includes/functions_messenger.php
Вредный совет.
Clear писал(а): 02.03.2018 18:42 Сделал по инструкции
Вредная инструкция.

Отправлено спустя 6 минут 28 секунд:
Для изменения заголовка есть событие, я его когда-то запрашивал Пожелания дополнений Event List
includes/functions_messenger.php, строки 497-505

Код: Выделить всё

		/**
		* Event to modify email header entries
		*
		* @event core.modify_email_headers
		* @var	array	headers	Array containing email header entries
		* @since 3.1.11-RC1
		*/
		$vars = array('headers');
		extract($phpbb_dispatcher->trigger_event('core.modify_email_headers', compact($vars)));
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Beer
phpBB 2.0.9
Сообщения: 708
Стаж: 12 лет 8 месяцев
Благодарил (а): 193 раза
Поблагодарили: 69 раз

Re: Email on birthday - Рассылка поздравлений

Сообщение Beer »

Clear писал(а): 02.03.2018 18:42 отправляются в HTML-формате, т.е. текстовые шаблоны теряют как минимум, переносы строк.
А я то думаю - почему у меня все письма стали кучей текста! :o
Начал было решать добавлением тега <br/>.....
Сконвертировался с SMF2 в phpBB3.2
Clear
phpBB 1.2.1
Сообщения: 20
Стаж: 8 лет 2 месяца
Благодарил (а): 4 раза

Re: Email on birthday - Рассылка поздравлений

Сообщение Clear »

Beer писал(а): 02.03.2018 19:32 Начал было решать добавлением тега <br/>.....
Ну это первое, что приходит в голову)) С другой стороны, если уж лезть в ядро, то лезть до конца)) Перед отправкой письма текст сообщения можно обернуть в nl2br(), тогда добавление <br/> будет произведено автоматически. Но, имхо, это не по-феншую, и как сказал Sheer,
Sheer писал(а): 02.03.2018 18:56Вредный совет.
Отправлено спустя 2 минуты 50 секунд:
Sheer писал(а): 02.03.2018 18:56
Для изменения заголовка есть событие, я его когда-то запрашивал Пожелания дополнений Event List
Сейчас это готовый механизм? Как его правильно внедрить?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: Email on birthday - Рассылка поздравлений

Сообщение Sheer »

Clear писал(а): 02.03.2018 21:55 если уж лезть в ядро, то лезть до конца
Никогда не лезть. А если уж лезть, то не модифицировать код, а добавлять события.
Clear писал(а): 02.03.2018 21:55 Как его правильно внедрить?
Так там Пожелания дополнений Event List и написано. В сообщении практически готовый код функции, которую нужно добавить в ./ext/forumhulp/emailonbirthday/event/listener.php

Отправлено спустя 9 минут 38 секунд:
Как-то так (не проверял и не собираюсь)
Открыть ./ext/forumhulp/emailonbirthday/event/listener.php
Найти

Код: Выделить всё

			'core.acp_board_config_edit_add'	=> 'load_config_on_setup',
Добавить после

Код: Выделить всё

			'core.modify_email_headers'			=> 'modify_email_headers',
Найти

Код: Выделить всё

	public function load_language_on_setup($event)
Добавить перед

Код: Выделить всё

	public function modify_email_headers($event)
	{
		$headers = $event['headers'];
		$key = array_search('Content-Type: text/plain; charset=UTF-8', $headers);
		$headers[$key] = 'Content-Type: text/html; charset=UTF-8';
		$event['headers'] = $headers;
	}
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Ответить

Вернуться в «Бета-версии расширений для phpBB»