我现在要实现一个用户邮件订阅功能,每天要自动发邮件到用户邮箱,我不大清楚怎样实现。
我现在做法就是 写一个发邮件的文件,在首页导入函数,每天的第一个人打开网页时激发。
但是问题来了,发邮件很慢,而这个发邮件进程是第一个访客的,只有当邮件发完才算首页完成。当他离开首页时,邮件还继续发不??
听说PHP不能有定时做某事(也就是到达某一设定时间时自动开始工作),而必须有外界的激发才行。
我想问,能不能当第一个访客激发了发邮件后,就自动在后台完成,而不再去管访客是否离开。
怎样实现

解决方案 »

  1.   

    不需要加在首页,
    windows可以加到计划任务里,
    linux加到crontab,
    定时执行.
      

  2.   

    回楼上的,我这是一个网站,用的是虚拟空间,我只能用PHP实现
    我主要想知道的是--我想问,能不能当第一个访客激发了发邮件后,就自动在后台完成,而不再去管访客是否离开。 
    怎样实现
      

  3.   

    但是问题来了,发邮件很慢,而这个发邮件进程是第一个访客的,只有当邮件发完才算首页完成。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    你可以在角落里放一个很小的iframe,比如1*1
    当他离开首页时,邮件还继续发不?? 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    只要程序运行不超时,客户端关闭浏览器,服务器端会一直运行
      

  4.   

    我也这么做过,不过是备份数据库。备份数据库没什么问题,毕竟没有人访问的时候数据库也不会有变化。呵呵,如果是这样就不好办了。毕竟邮件有很多封,让用户去触发会导致用户访问网页的数据很慢。如果用户中途关闭网页会导致邮件发送不成功等因素。没有条件的话,你可以手工去后台点击一下好了。或者这部分的程序改用java或.net的
      

  5.   

    send_mail.php
    process for send mail to user
    index.php or .... any page
    use [fopen / fsockopen / ...] trigger  `send_mail.php`
      

  6.   

    用AJAX行不行?
    设置一个已发送邮件标志,在首页做判断,还没发的话就调用ajax去发送邮件.
      

  7.   

    在本地服务器可以写个命令来访问你发送邮件的页面,虚拟空间你不能操作,本地服务器你应该可以操作吧,只要那台服务器可以上网
    windows可以加到计划任务里,
    linux加到crontab,
    定时执行.