Вход для клиентовВход для клиентов  Блог О компании
Поиск:

Помощь » База знаний » Почта »

Настройка задачи cron для отложенной рассылки писем

Для эффективного использования приложения WebAsyst Почта рекомендуется настроить расписание выполнения отправки сообщений с заданной периодичностью. На серверах с UNIX-подобными операционными системами для этого используется планировщик cron.

Преимущества использования планировщика:

  • возможность отложенной отправки писем;
  • автоматическая досылка массового сообщения остальным адресатам, если рассылка прервалась, например, из-за превышения технических ограничений, установленных хостинг-провайдером.
Совет: автоматическая досылка массовых сообщений в приложении WebAsyst Почта может быть полезна, если из-за ограничений хостинг-провайдера не срабатывает отправка новостей в приложении WebAsyst Shop-Script.

Для настройки задания cron необходимо знать путь к исполняемому файлу интерпретатора PHP и путь к директории, в которой установлен WebAsyst, чтобы получить доступ к скрипту автоматического запуска задач kernel/includes/robots/launcher.php.

Ниже приведено подробное описание процесса настройки на разных типах серверов.

Внимание: пользователям веб-сервисов WebAsyst не нужно выполнять инструкции, описанные в этой статье.

UNIX/Linux/FreeBSD

  1. Исходные данные:
    • PHP установлен в директории /usr/local/bin
    • WebAsyst установлен в директории /var/www
  2. Запустите команду crontab, которая ответственна за запуск команд с заданной периодичностью:
    crontab -u user -e

    Вместо user нужно указать имя системного пользователя, от имени которого выполняется задание. С учетом параметров в данном примере добавьте следующую команду (в одну строку):

    2 * * * * /usr/local/bin/php /var/www/kernel/includes/robots/launcher.php

    Здесь 2 * * * * означает, что указанная далее команда должна выполняться с наступлением второй минуты каждого часа каждый день каждого месяца (если вы хотите настроить отправку писем с наступлением другой минуты каждого часа, измените соответствующим образом первое значение). Более подробно с информацией об использовании команды crontab в Unix-подобных операционных системах вы можете ознакомиться по адресу http://ru.wikipedia.org/wiki/Cron).

  3. Сохраните измененный файл и выйдите из программы, чтобы завершить создание задания.
Внимание: если WebAsyst установлен на виртуальном хостинге, можно ввести параметры настройки отложенной отправки писем в контрольной панели своего аккаунта (если эта функция предоставляется хостинг-провайдером). Порядок настройки задания cron в контрольной панели каждого хостинг-провайдера может быть различным, но в общем команда, которая должна выполняться с заданной периодичностью, должна выглядеть следующим образом (в одну строку):
{путь к исполняемому файлу PHP} launcher.php

Windows

  1. Исходные данные:
    • Исполняемый файл PHP (php.exe) находится в директории C:\\php.
    • WebAsyst установлен в директории C:\\htdocs.
  2. Выполните указанную выше команду, чтобы создать файл robot.bat. С учетом параметров в данном примере командная строка должна выглядеть следующим образом:
    C:\\php\php.exe C:\\htdocs\kernel\includes\robots\launcher.php
  3. В главном меню Windows «Пуск» перейдите в подменю Все программы -> Стандартные -> Служебные и запустите программу «Назначенные задания». В окне этой программы щелкните по ссылке «Добавить задание», чтобы открыть окно «Мастера планирования заданий».
  4. Выберите созданный ранее файл robot.bat. После этого укажите наименование для созданной задачи, например, «Ежечасная задача», и выберите периодичность ее выполнения, например, «Выполнять это задание -> ежедневно».
  5. Выберите время первого запуска программы:
    Время начала 0:02
    Выполнять это задание: ежедневно
    Дата начала: текущая дата
    В приведенном выше примере настройки значение параметра Время начала означает, что письма будут отправляться с наступлением второй минуты каждого часа (при желании можно установить любую другую минуту) каждый день начиная с текущего дня. Можно настроить отправку писем через более короткие промежутки времени, если вы продолжите настройку с помощью «Мастера планирования заданий».
  6. Введите имя и пароль пользователя системы, от имени которого будет выполняться задание.

    Внимание: если вы не введете пароль, назначенное задание может не выполняться.
  7. Чтобы настроить отложенную отправку писем через более короткие (чем одни сутки) промежутки времени — например, ежечасно — отметьте параметр «Установить дополнительные параметры после нажатия кнопки "Готово"» и нажмите «Готово». Появится новое окно, в котором необходимо открыть вкладку «Расписание» и нажать на кнопку «Дополнительно...». Отметьте параметр «Повторять задание» и выберите «Каждые -> 1 -> часов» и «Выполнять -> в течение -> 11 час. 30 мин.».
  8. Нажмите на кнопку «OK», чтобы завершить создание задания.
Важно: если необходимо установить период срабатывания задания cron с интервалом менее 1 часа, этот период не должен быть меньше значения параметра max_execution_time в конфигурации PHP. Периодичность срабатывания задания cron также должна превышать период времени, в течение которого может выполняться рассылка до достижения иных ограничений, установленных хостинг-провайдером. В противном случае часть адресатов массовой рассылки может получать одно и тоже сообщение дважды.
 
 
Наш новый проект:

Фреймворк Webasyst

PHP-фреймворк для быстрого создания
веб-приложений для бизнеса.

www.webasyst.com