как отправить почту на указанную дату и время, используя mysql и переполнение стека

Сейчас что у меня есть,

1.user specified date and time in the database.
2.And also have a php script to send mail.

необходимые

1.trigger php script when specified date and time arrives.

Note: I am using local apache server

Example: Suppose A want to send mail to B 5 days from now, A enters date and time in database and after 5 days it will automatically send the mail by running php mailer script.

Есть ли способ планирования этого ??

2

Решение

Вы можете использовать скрипт для проверки различий даты по дате в базе данных за интервал 1 мин или 1 секунду или когда-либо запускать проверку скрипта. Например, по php:

public static function diff_time($date, $timezone = null,$now=null)
{
if($now == null)
{
$now =  date_create(date('Y-m-d H:i:s'));
$now = new \DateTime(date('Y-m-d H:i:s'));
$time_now = time();
}
if(is_int($date)){
$time = $date;
$date = date('Y-m-d H:i:s',$date);
}
else{
$time = strtotime($date);
}
$date=new \DateTime($date);
$diff=$date->diff($now);
return $diff`;}

Вы можете использовать проверку различий, если время отправки почти равно или равно нулю.
теперь вы можете добавить

crontab -e

добавлять

` * * * * * php ~/script.php`

по примеру запускай каждый раз проверяй и отправляй почту

0

Другие решения

Напишите функцию для получения списка отправителей и получателей из БД для выполнения даты.

ex:  check php date is equal to DB date to sent the email.
Add the php script to a cron job

Проверьте пример кода

$queryToGetuserListToSendEmail = "select * from userlist where date_toSend_email = ''". date("Y-m-d H:i:s")."'";
$userListToSendEmail = array();//senders relievers and other details taken from DB to send emails

foreach ($userListToSendEmail as $usersToSendEmail){
//sendEmail
}

Задание Cron для выполнения задания каждый день 2.30 А.М. (добавьте это на вкладке cron)

30 2 * * * php /pathtoyourfile
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector