PHP - Отправить письмо с задержкой в ​​x раз - PullRequest
0 голосов
/ 10 сентября 2018

Мне нужно отправить и по электронной почте через x раз, используя код php.

Я не хочу использовать cronjob. Итак, этот код не работает, потому что php-код печатается один раз и не меняет DOM автоматически, как js. Но мне нужно что-то вроде этого:

  $today = date('Y-m-d H:i:s');
  $dataorder = date("Y-m-d H:i:s", $order->created);
  $delay_days = 240;
  $senday = date('Y-m-d H:i:s', strtotime( "$dataorder + $delay_days min" ));

   if ($today == $senday) {

    echo "sent";

   } else {

    echo "not yet sent";

   }

Теперь я могу использовать js, но я не уверен, что это сработает, этот скрипт php является страницей со всеми php в бэкэнде. Итак, я могу использовать только PHP? как использовать функцию сна? или другой

Я не знаю, это лучший способ.

(В частности, это система отправки электронных писем, которую нужно помнить, чтобы оставить комментарий на сайте.)

Спасибо

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Вы можете хранить каждое электронное письмо в таблице базы данных или временном файле, и когда придет время, пользователь отправит ожидающие электронные письма. Например, вы можете отправлять ajax-запрос каждые 10 секунд, который будет отправлять письма, чтобы предотвратить медленную загрузку страницы.

Лучшее решение - использовать cronjob для таких заданий.

0 голосов
/ 10 сентября 2018

Вы можете достичь этого как

  1. Поскольку у вас есть данные о пользователях, вы знаете, на какую дату зарегистрирован конкретный пользователь.

  2. Напишите скрипт, который будет выполняться каждый день и выберет всех пользователей, зарегистрированных 5 дней назад. Почта будет отправлена ​​всем подходящим пользователям на эту дату.

  3. Сценарий будет продолжаться до тех пор, пока последний пользователь не будет обработан для этой даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...