php读取数据库内容然后判断用户的注册时间,大于多久的自动发送一封邮件

a198348 2012-03-21 05:58:30
可以给个参考吗?
比如运行以后会调用注册时间和用户名,大于1个月的注册时间的自动发送过去
用户:<用户名>
你好,你于<注册时间>注册本站,到目前为止已经有一个月时间了,感谢支持
已经发送过的不在重复发送这样的
...全文
215 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝色的雨哎 2012-03-27
  • 打赏
  • 举报
回复
用户注册有邮箱 有注册时间。
这里你最好在数据库加一个字段(send)标示是否发送过邮件。
1.sql语句取出所有用户
2.循环判断时间是否在大于1个月
3.大于一个月发送邮件,否则不发送
4.发送邮件后给这个id 的 send 字段置 1 标示已经发送。

上面的方法速度慢,代码冗余多。
1.sql语句只取出要发送邮件的用户
2.发送邮件
3.发送邮件后给这个id 的 send 字段置 1 标示已经发送

就是这么个思路,代码LZ自己写吧。
小在在 2012-03-22
  • 打赏
  • 举报
回复
理清思路就好,相当简单的知识
黄袍披身 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 a198348 的回复:]

引用 3 楼 mengxiangbaidu 的回复:

1.找phpmailer
2.时间判断简单吧。
3.加个字段,做标识,是否发送。也不难吧

有单个php的吗?
[/Quote]

自己写个phpmailer就是单个了.
a198348 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mengxiangbaidu 的回复:]

1.找phpmailer
2.时间判断简单吧。
3.加个字段,做标识,是否发送。也不难吧
[/Quote]
有单个php的吗?
黄袍披身 2012-03-21
  • 打赏
  • 举报
回复
$array=array('路人甲'=>array('mail'=>'test1@21cn.com','regTime'=>'2010-12-30 12:22:22'),'路人乙'=>array('mail'=>'test1@21cn.com','regTime'=>'2010-12-30 12:22:22'),'路人丙'=>array('mail'=>'test1@21cn.com','regTime'=>'2010-12-30 12:22:22'));

foreach ($array as $key=>$value){
$sendmail->sendto($value['mail']);
$sendmail->title('过期通知');
$regTime=$value['regTime'];
$mailText="
用户:{$key}
你好,你于{$regTime}注册本站,到目前为止已经有一个月时间了,感谢支持
";
$sendmail->text($mailText);
}
//发送完毕将数据更新
$SQL="UPDATE member SET send=1 WHERE id IN (.....)"
mysql_query($SQL);

//这是例子,能看明白就行,sendmail也是例子,具体需要看相关实例的引用
coder 2012-03-21
  • 打赏
  • 举报
回复
1.找phpmailer
2.时间判断简单吧。
3.加个字段,做标识,是否发送。也不难吧
a198348 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 phpnewnew 的回复:]

这是很简单的东西,假若你不会,别人给了你代码你依然还是不会。

根据条件搜索出数据库内的名单
循环名单数组 发送邮件
将已经发送成功的用户名单保存到表或者标识

如果你什么都不会那么就先别做这么“复杂”的东西.
你的问题让人无所适从,不知道如何给你回答
[/Quote]能给个代码参考下吗?
黄袍披身 2012-03-21
  • 打赏
  • 举报
回复
这是很简单的东西,假若你不会,别人给了你代码你依然还是不会。

根据条件搜索出数据库内的名单
循环名单数组 发送邮件
将已经发送成功的用户名单保存到表或者标识

如果你什么都不会那么就先别做这么“复杂”的东西.
你的问题让人无所适从,不知道如何给你回答

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧