前言:
话说某天我收到了火狼婆婆的邮件,竟然是尼玛java的反动思想,JAVA编写的邮件发送实例,还带一个嘲笑的图片…怒了,虽然我是PHP渣,但是你这也太猖狂了。so,决定我也写一个邮件发送的小程序。
可能编程思想有严重错误,方法也不是很精通,希望各位朋友指出吐槽!

执行思想:
虽然我不知道PHP中定时执行任务是怎么实现的,但是我想了想应该是时间戳计算出秒数,然后sleep休眠一段时间执行,这应该比循环效率略高,但是问了问别人sleep函数在客户端浏览器关闭后失效,据说大多数PHP函数都是这样,虽然我不知道为啥,不过我们可以通过——ignore_user_abort();来屏蔽忽略浏览器关闭,然后用——set_time_limit(0);设定PHP脚本无最大失效时间。
主体:
<?php
$sends=$_POST["sends"];
$subject=$_POST["subject"];
$time=$_POST["time"];
$stime=$_POST["stime"];
if(@$_POST["subject"]==""&&$_POST["sends"]==""&&$_POST["friends"]==""){
echo"<html>
<form action='mail.php' name='sends' method='POST'action='mail.php'>
您的主题:<input type='text' name='subject'></br>
收件人邮箱:<input type='text' name='friends'></br>
您的邮件内容:<input type='text' name='message' style='width:500px;height:400px'>
</br>您要设定的发送日期<input type='text'name='time'> (规则为2015-01-01)</br>
发送时间:<input type='text'name='stime'style='width:100px;height:30'> (规则为 23:08:01)
</br><input type='submit' value='提交定时发送'>
</form>
</html> ";}else{
$one=strtotime(date('Y-m-d H:i:s'));//下unix下的时间戳
$endtime=strtotime($time.$stime);
$cle = $endtime - $one;//获得秒位时间差
ignore_user_abort();//忽略浏览器关闭
set_time_limit(0);//脚本无时间执行限制
sleep($cle);//程序延时执行
mail('$friends', '$subgect', '$sends');//执行发送
}
?>
忽略前台登陆,SESSION验证之类的小登陆验证的东东,大体实现就是这个,话说我真的很菜逼,希望各各湿胸指导。
