本帖最后由 diomen 于 2009-11-16 17:10 编辑
dz版的,参见:https://discuz.dismall.com/thread-1484187-1-1.html之前发过一个手工运行版的,结果一个朋友说发的很过瘾,结果一次性发了好多!这样很容易导致账户被封!细水长流啊!
一、保存下列代码为callbackmail.php,放入source/cron/目录下:- <?php
- /*
- author:www.dmyuan.com
- $Id: callbackmail.php 2009.11.13 diomen
- */
- include_once('./common.php');
- if(!defined('IN_UCHOME')) {
- exit('Access Denied');
- }
- $pernum = 4;//一次发送邮件个数,太多容易超时和服务器被封杀
- $lockfile = S_ROOT.'./data/callbackmail.lock';
- @$filemtime = filemtime($lockfile);
- $timespan = $_SGLOBAL[timestamp]-7*24*3600;//7天未登录就发送邮件提醒
- touch($lockfile);
- //防止超时
- set_time_limit(0);
- include_once(S_ROOT.'./source/function_sendmail.php');
- $message = 'Hi,您好,您已经很久没有登录点梦缘了吧,每天都有几百名新缘友加入,每天都会有上千名缘友在这里找寻幸福!也许缘分就在一瞬间,要把握住哦,快回家看看吧!<br/>如果您在使用中遇到问题,请联系网站底部的客服QQ!';
- $query = $_SGLOBAL['db']->query("SELECT s.uid,s.username,sf.email FROM ".tname('space')." s , ".tname('spacefield')." sf WHERE s.uid=sf.uid AND s.lastsend<='$timespan' AND s.lastlogin<='$timespan' ORDER BY s.lastlogin LIMIT 0,$pernum");
- while ($value = $_SGLOBAL['db']->fetch_array($query)) {
- $subject = 'Hi,'.$value[username].',您在点梦缘有新消息了!';
- if(!$flag = sendmail($value[email], $subject, $message)) {
- runlog('sendmail', "$value[email] sendmail failed.");
- }
- //更新用户最后发送时间
- $_SGLOBAL['db']->query("UPDATE ".tname('space')." SET lastsend='$_SGLOBAL[timestamp]' WHERE uid = '$value[uid]'");
- }
- ?>
复制代码 2、登录后台,添加计划任务!
按照下面的设置添加即可,为防止邮箱账户被封,请尽量设置时间长一点!
只分享给需要的朋友!
有问题跟帖吧!信件中的文字内容,都很明白了吧?自己修改成自己网站的文字吧!
那些对免费分享还挑三拣四的垃圾们,
趁早滚远点,
别在本人的地盘撒野!
3、关于如何配置发送邮件的账户的,论坛很多帖子了,我就发我们网站的一个截图吧,一直发的很稳定!
进入后台-站点设置,滚动到最下面的邮件设置,就是这张图了!
|