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

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

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

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

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

Сообщение mokvo4 » 02.02.2018 15:43

Beer писал(а):
02.02.2018 15:30
Использование HTML в электронной почте: Отправить на день рождения email в HTML- вместо простого текста.
Да Нет(Возможно только с поддержкой расширения, forumhulp\htmlemail)
выбрать: "НЕТ"

Аватара пользователя
Beer
phpBB 2.0.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

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

Сообщение Beer » 02.02.2018 15:46

Ну тогда я все правильно сделал. Строчку отредактирую для себя - чтобы не забыть. Неплохо бы добавить в архив первого сообщения, чтобы танкисты типо меня не путались. :?
Сконвертировался с SMF2 в phpBB3.2

Аватара пользователя
angst66
phpBB 2.0.20
Сообщения: 1292
Зарегистрирован: 11.01.2012 20:44
Благодарил (а): 75 раз
Поблагодарили: 116 раз
Контактная информация:

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

Сообщение angst66 » 22.02.2018 22:40

Даже не знаю куда смотреть, поставил, крон заблокировался.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2578 раз
Контактная информация:

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

Сообщение Sheer » 22.02.2018 22:50

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

Аватара пользователя
angst66
phpBB 2.0.20
Сообщения: 1292
Зарегистрирован: 11.01.2012 20:44
Благодарил (а): 75 раз
Поблагодарили: 116 раз
Контактная информация:

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

Сообщение angst66 » 22.02.2018 23:02

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

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

[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
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2578 раз
Контактная информация:

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

Сообщение Sheer » 22.02.2018 23:07

Не подходит.
angst66 писал(а):
22.02.2018 23:04
Call 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 2.0.20
Сообщения: 1292
Зарегистрирован: 11.01.2012 20:44
Благодарил (а): 75 раз
Поблагодарили: 116 раз
Контактная информация:

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

Сообщение angst66 » 22.02.2018 23:17

Sheer, спасибо огромное, крон разблокировало. У кого будет такая проблема, после всего пусть кэш в админке почистит.

Clear
phpBB 1.2.1
Сообщения: 20
Зарегистрирован: 18.01.2016 22:57
Благодарил (а): 4 раза

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

Сообщение Clear » 02.03.2018 13:54

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

Об отправке заблокированным узнал по ошибке доставки, хорошо, что отправка идёт через SMTP.

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4179
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 109 раз
Поблагодарили: 442 раза
Контактная информация:

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

Сообщение Siava » 02.03.2018 14:03

Clear писал(а):
02.03.2018 13:54
2. Где-нибудь ведутся логи отправок?
ACP > Обслуживание > Лог администраторов
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2578 раз
Контактная информация:

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

Сообщение Sheer » 02.03.2018 14:15

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
Зарегистрирован: 18.01.2016 22:57
Благодарил (а): 4 раза

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

Сообщение Clear » 02.03.2018 18:42

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
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2578 раз
Контактная информация:

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

Сообщение Sheer » 02.03.2018 18:50

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.8
Сообщения: 652
Зарегистрирован: 07.07.2011 1:33
Благодарил (а): 171 раз
Поблагодарили: 62 раза

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

Сообщение Beer » 02.03.2018 19:32

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

Clear
phpBB 1.2.1
Сообщения: 20
Зарегистрирован: 18.01.2016 22:57
Благодарил (а): 4 раза

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

Сообщение Clear » 02.03.2018 21:52

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
phpBB Guru
phpBB Guru
Сообщения: 11485
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2578 раз
Контактная информация:

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

Сообщение Sheer » 02.03.2018 22:06

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»