Рассылка поздравлений с днями рождений
Подскажите существуют ли компоненты для рассылки поздравлений с днём рождения пользователям, которые берут дату из профиля в modx? Пытаюсь найти и нашла только birthReminder, но это скорее личный календарь для оповещения. Не может же быть, что за столько лет не появилось такого функционала? Может кто видел подходящие решения?
Комментарии: 19
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Поставьте CronManager и запускайте каждое утро.
Дни рождения хранятся в формате Unix Timestamp и как в этом случае сравнивать ещё придумать надо.
Просто так слать письмо не получиться, вдруг сегодня 100 именинников, значит надо организовывать очередь рассылки. И скорее всего ещё что-нибудь выплывет. Поэтому искала готовое решение, думала, что существует что-то.
2) Для отправки очереди писем, чтобы хостинг не подумал, что через него спам рассылают можно подключить API какого-нибудь сервиса рассылок, типа Unisender. Там письма довольно легко отправлять.
Вызывать через cron.
Можно пару уточнений? Здесь очередь рассылки никак не учитывается? То есть если будет 100 пользователей с ДР, то сразу отправится 100 писем? Cron надо запускать раз в сутки если не ошибаюсь? (иначе будет рассылать повторно?)
Кстати, именно для рассылки наткнулась на очень интересное приложение goodnews, может кому пригодится.
Шаг 1. Отдельным скриптом сохранять письма в кэш.
В папке core/cache/queue появится файл birthdays.cache.php с массивом писем. У метода save() есть второй параметр, который отвечает за режим работы: true — пересоздать файл, false — дописать данные. По умолчанию, false. Т.е. очередь дописывается.
Шаг 2. Другим скриптом зачитывайте кэш, например, раз 10 минут в течение часа.
Бейте массив на 2 части. По первой части работаете (функция email), а вторую опять сохраняете в кэш.
Так и должно быть, что при 2м проходе в array указано два email? Если так и должно быть поищу хостинг где можно сделать копию с рабочей функцией mail.
П.С. Я бы ещё посоветовал ограничить список полей через select(). Не зачем ненужные поля выводить.
Я так понимаю, надо добавить строку , но как выбрать сразу несколько полей так будет работать?
Добавил пример в описание метода select.
А попробовать?
например в сниппете
последней операцией будет и дальше ничего происходить не будет. Ошибок в журналах тоже нет. (Если убрать любые пару строк про группы, например то весь сниппет отработает.
(то есть работают любые 2 операции после where и всё )
Это так и должно быть или я что-то не так делаю?
Такой сниппет работает
а такой выполняет только две операции и отваливается