Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Внимание, этот компонент требует версию PHP
5.3
или выше!
Если ваш сайт использует PHP ниже требуемого, установка этого
дополнения может его сломать.
С сайта бывает требуется отсылать много писем. Но многие хостеры ограничивают число писем что можно сразу отправить. Например на одном хостинге можно отправить только 60 писем в минуту. Чтобы обойти это ограничение нужно организовывать очередь писем и отправлять письма частями по, например, 50 штук. Чтобы не писать такую очередь каждый раз когда отправка многих писем нужна в компоненте, написал отдельный компонент что организует такую очередь.
В админке сделано относительно удобное управление очередью.
Для отправки писем из очереди поставите в cron файл core/components/emailqueue/cron/send.php с нужной периодичностью.
Настройки:
emailqueue_limit — сколько писем отправлять за раз.
emailqueue_store_days — сколько дней письма хранить в очереди.
Для помещения писемь в очередь используйте примерно такой код:
В версии 1.1.0-beta
Сделан более удобный topBar.
Добавлен статус «Отправляется» для для избежания отправки дубликатов писем.
Добавлены хуки EmailQueue и EmailQueueAutoResponder для замены хуков email и FormItAutoResponder в FormIt/AjaxForm.
EmailQueue — Cниппет для drop-in replacement замены хука email для FormIt/AjaxForm
Просто в вызове поменять хук на EmailQueue
EmailQueueAutoResponder — Cниппет для drop-in replacement замены хука FormItAutoResponder для FormIt/AjaxForm
Просто в вызове поменять хук на EmailQueueAutoResponder
И не все параметры FormIt поддерживает (например emailHtml, emailToName, emailCC, итд), т.к. компонент их не учитывает.
На демо сайте логин demo пароль demo
В админке сделано относительно удобное управление очередью.
Для отправки писем из очереди поставите в cron файл core/components/emailqueue/cron/send.php с нужной периодичностью.
Настройки:
emailqueue_limit — сколько писем отправлять за раз.
emailqueue_store_days — сколько дней письма хранить в очереди.
Для помещения писемь в очередь используйте примерно такой код:
if (!$EmailQueue = $modx->getService('emailqueue', 'EmailQueue', $modx->getOption('emailqueue_core_path', null,
$modx->getOption('core_path') . 'components/emailqueue/') . 'model/emailqueue/', array())) {
return;
}
$queue_email = $modx->newObject('EmailQueueItem');
$data1 = array(
'sender_package'=>'UserTest', //дополнение отправитель письма
'to'=>$invite->user_email, //емаил
'subject'=>$modx->lexicon('usertest_invite_subject',array('test_name' => $test->name)), // тема письма
'body'=>$modx->getChunk('tpl.UserTest.InviteEmail',array('test_name' => $test->name,'link'=>$invite->url)), // тело письма
'date'=>date("Y-m-d H:i:s"), // дата в очереди. Нужно чтоб письма удалялись по истечении срока хранения.
);
if($modx->getOption('usertest_invite_email_from', null, false))
$data1['from'] = $modx->getOption('usertest_invite_email_from'); //необязательно
if($modx->getOption('usertest_invite_email_from_name', null, false))
$data1['from_name'] = $modx->getOption('usertest_invite_email_from_name'); //необязательно
$queue_email->fromArray($data1);
if($queue_email->save())
$modx->log(modX::LOG_LEVEL_INFO,"Приглашение на $email добавлено в очередь писем!");
Дополнительно можно задать:$queue_email->reply_to // обратный адрес
$queue_email->attachments //полные имена приклепляемых файлов через запятую
В версии 1.1.0-beta
Сделан более удобный topBar.
Добавлен статус «Отправляется» для для избежания отправки дубликатов писем.
Добавлены хуки EmailQueue и EmailQueueAutoResponder для замены хуков email и FormItAutoResponder в FormIt/AjaxForm.
EmailQueue — Cниппет для drop-in replacement замены хука email для FormIt/AjaxForm
Просто в вызове поменять хук на EmailQueue
EmailQueueAutoResponder — Cниппет для drop-in replacement замены хука FormItAutoResponder для FormIt/AjaxForm
Просто в вызове поменять хук на EmailQueueAutoResponder
[[!Formit?
&hooks=`EmailQueue,EmailQueueAutoResponder`
&emailTpl=`feedbackEmail`
&emailTo=`test@mail.ru`
&emailSubject=`Сообщение с сайта`
&replyTo=`[[+email]]`
&emailFrom=`[[++emailsender]]`
&fiarTpl=`feedbackEmail`
&fiarSubject=`Сообщение с сайта`
&fiarReplyTo=`[[+email]]`
&fiarFrom=`[[++emailsender]]`
]]
Поддержку вложений не делал, т.к. не было необходимости.И не все параметры FormIt поддерживает (например emailHtml, emailToName, emailCC, итд), т.к. компонент их не учитывает.
На демо сайте логин demo пароль demo
1.2.0-beta
Исправлены опечатки в коде сниппетов. Evgeny Duryagin Исправлено Flat file processor support is deprecated since version 2.7.0.
1.1.1-beta
Исправлены описания.
1.1.0-beta
Сделан более удобный topBar. Добавлен статус "Отправляется" для для избежания отправки дубликатов писем. Добавлены хуки EmailQueue и EmailQueueAutoResponder для замены хуков email и FormItAutoResponder в FormIt/AjaxForm
1.0.5-beta
Исправлена ошибка с типом поля body в php 7.2. phptype="text" заменил на phptype="string"
1.0.4-beta
Добавлена всплывающая подсказка на кнопки. Исправлено отображение даты отправки. Добавлены подписи к параметрам.
1.0.3-beta
Добавлена кнопка очистить все из очереди. Улучшена фильтрация писем. Можно искать по компоненты отправителю, емаил, теме и статусу письма. Исправлен фильтр по статусу.
Последние обсуждения в сообществе MODX.pro