Сейчас что у меня есть,
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.
Есть ли способ планирования этого ??
Вы можете использовать скрипт для проверки различий даты по дате в базе данных за интервал 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`
по примеру запускай каждый раз проверяй и отправляй почту
Напишите функцию для получения списка отправителей и получателей из БД для выполнения даты.
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