В настоящее время я изучаю функции электронной почты Drupal, такие как drupal_mail и hook_mail, и hook_mail_alter, и передо мной возникла проблема, когда мне нужно будет иметь возможность ставить в очередь электронные письма для отложенной доставки. Например, уведомление о регистрации события, которое нужно ждать в течение часа после того, как событие было зарегистрировано пользователем. И это электронное письмо содержит данные, специфичные для пользователя, поэтому оно не может быть просто шаблонным электронным письмом ...
Я использую модуль MailQ , главным образом для его возможностей ведения журнала, но мне интересно, можно ли его (или что-то еще) изменить для добавления настраиваемой функции задержки?
Есть идеи?
======================
Некоторые дополнительные мысли:
В D6 есть 2 модуля, которые полезны для организации очередей электронной почты, MailQ и очереди заданий (в списке Никита ниже). Они оба имеют функциональность почтовой очереди, которая может быть очень полезна, и оба имеют разные подходы, сильные и слабые стороны - из беглого расследования. Например: MailQ имеет отличную функцию регистрации, с очень полезным интерфейсом администратора для работы с категориями почты, такими как постановка в очередь, отправка, отправка, ошибка и т. Д. И вы можете установить, сколько писем отправлять при каждом запуске cron.
Но хотя в очереди заданий, насколько я могу судить, нет этих категорий и ведения журнала и архивирования, она позволяет расставлять приоритеты для разных заданий, что может быть очень полезно, если одновременно отправляются разные типы сообщений электронной почты, например контакт например, подтверждения регистрации событий и электронные письма с приглашением.
Таким образом, в моей идее об идеальной очереди оба этих модуля были бы интегрированы (они не очень хорошо ладят) с дополнительной функцией задержки для каждого типа задания.
Но написание такой вещи выходит за рамки моих скудных талантов, поэтому мне просто нужно написать небольшой пользовательский модуль, который активируется cron и который будет искать помеченные контакты с датой создания не менее часа в прошлого, и найдите способ записать соответствующую информацию непосредственно в таблицу БД MailQ.
Кажется, что происходит некоторое столкновение, когда моя новая функция запускается cron, а также функция MailQ, запускаемая одним и тем же запуском cron, поэтому я пытаюсь разобраться, как расставить приоритеты cron MailQ поверх моей функции - чтобы моя функция добавляла данные таблицы ПОСЛЕ запуска MailQ.