У меня есть сайт, на котором я хочу отправить несколько последующих писем клиентам через определенное количество дней после того, как они что-то купили. Теперь я задаюсь вопросом, как это сделать. Я думаю, что существует два варианта:Хранить действия, которые необходимо предпринять в базе данных или решить из кода?
- Создайте таблицу в моей БД, в которой я храню электронные письма, которые планирую отправить. Поэтому я просто храню адрес электронной почты клиента и дату, когда я его отправлю. Затем я просто запускаю cron каждый день и отправляю электронные письма, которые необходимо отправить, и установите статус в таблице «отправлено». Преимущество этого метода в том, что я знаю, какие письма нужно отправлять. Недостатком является то, что я менее гибкий; изменить количество дней, после которых я отправляю электронные письма, нелегко, потому что они хранятся в БД.
- Я также могу сделать это из кода, просто запустив cron, который получает список клиентов, которые купили что-то х дней назад, отправили им электронное письмо и только , а затем сохранили тот факт, что я отправил им электронной почты в базе данных. Преимущество этого метода в том, что я более гибкий. Если я хочу отправить электронные письма позже, я могу просто определить это в коде (или каком-то var). Недостатком является то, что у меня нет списка писем, которые будут отправлены (хотя я действительно не знаю, для чего это было бы полезно).
Мой вопрос на самом деле; что лучше всего в этом случае? Как большинство сайтов справляются с этим и почему?
1-я часть для меня лучше. вам не нужно создавать другую таблицу для хранения электронной почты и даты. просто введите другой столбец даты в уже созданную таблицу, где, например, электронное письмо должно быть отправлено через 10 дней, просто введите код этой части в столбце «Дата напоминания» и запустите его в cron. для электронной почты это легко, если вы сохранили электронное письмо каждого пользователя в сеансе. все, что вам нужно сделать, это написать $ _SESSION ['email'] в элементе email_to, а зарегистрированный электронный адрес пользователя будет отправлен соответствующему лицу – fizzi