当前位置: 首页 > 图文教程 > 网络编程 > PHP > 管理小型的邮件列表

PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
用mysql内存表来代替php session的类
简化php模板页面中分页代码的解析
一周让你学会PHP 不错的学习资料
PHP 数据库树的遍历方法
php实现从ftp服务器上下载文件树到本地电脑的程序
PHP 操作文件的一些FAQ总结
PHP 截取字符串 分别适合GB2312和UTF8编码情况
PHP 编程的 5个良好习惯
php下几个常用的去空、分组、调试数组函数
PHP Ajax中文乱码问题解决方法
php 采集书并合成txt格式的实现代码
php Try Catch异常测试
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Zend 输出产生XML解析错误
php动态生成JavaScript代码
隐性调用php程序的方法
在JavaScript中调用php程序
php 数组的创建、调用和更新实现代码
php生成SessionID和图片校验码的思路和实现代码

PHP 中的 管理小型的邮件列表


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 268 ::
收藏到网摘: n/a

       管理小型的邮件列表
  limodou译
  
  
    最近有一个读者问我关于ThickBook新闻列表中处理订阅/退订的机制,并且是如何与实际的发送信息相
  配合,给邮件列表中的所有收信人的。问题提的不错,有一个相当容易的方法,但是我首先要说的是我所做
  的没有任何投机取巧的地方,因为我非常的酷----就是有,我使用这个方法也只是因为我懒。注意,在市面
  上有非常多的邮件列表软件,可以把它装在系统上,并且也有一些别的,更多的是结合在一起的脚本集,你
  也可以用来做同样的事情。但是,正如我所说,我是一个懒人,不想下载和安装任何东西,所以我生成了几
  个相当简单的页面,用来执行我所要求的工作。很希望,有人能从中学到一些东西。
  
    首先是订阅/退订脚本,它所做的工作就是从数据库表中增加或删除记录。把它叫做"manage.phtml" 或
  差不多的什么东西。这样呢,就需要后台是某种数据库,在上面可以创建订阅表。根据政治中的半数原则,
  所以我将使用MySQL作为这个例子的数据库。你可以使用任何你常用的数据库,只是根据PHP手册替换正确的
  数据库相关函数。
  
    在我的订阅表中,我使用了两个字段:邮件地址(email_addr)和添加日期(date_added)。你可以根据需
  要增加字段,或者将date_added字段删除。在这个例子中,我只是向你展示我做了什么,你可以适当的进行
  修改。在我的订阅表中,email_addr字段是一个不重复字段,意味着你不能增加另一个与之完全一样的e-mail
  地址。这个可以避免重复订阅,而且当用户想退订时,也使删除记录的方法变得简单和可靠。
  
    那么,让我们创建订阅/退订表单吧(manager.phtml或你想起的什么名字)。我使用同一个文件处理订
  阅和退订,也包括表格自身的动作,所以可能有点复杂。我将从头到尾讲解,然后把所有的片段组合在一起,
  放在一个表单中。
  
    在脚本的开始处,是打开数据库和准备时间戳。在开始时处理这些不显眼的东西总是可以为我减轻一点
  压力。
  
  --------------------------------------------------------------------------------
  // 连接数据库
  $db = mysql_connect("servername", "username", "password") or die ("不能连接。");
  
  mysql_select_db("yourDB", $db) or die ("不能选择数据库。");
  
  // 得到时间戳
  $add_date = date("Y-m-d"); --------------------------------------------------------------------------------
    我们希望$op的值是"ds"。它不是复杂的程序缩写----我创的,表示"do something(做某事)" 。所以,
  脚本的第一件事就是查看$op的值是不是等于"ds"。这个值只有当表单被提交后才会被发送上来。所以如果
  $op的值不是"ds",那么说明用户还没有看过表单,所以应该把表单显示出来:
  
  --------------------------------------------------------------------------------
  if ($op != "ds") {
  
  //需要订阅/退订
  
  $text_block = "
  
  <form name=\"form\" method=post action=\"$PHP_SELF\">
  <input type=hidden name=op value=ds>
  
  <p><strong>your e-mail address:</strong><br>
  <input type=text name=\"email\" size=25></p>
  
  <p><strong>action:</strong><br>
  <input type=radio name=\"action\" value=\"sub\" checked> sub
  <input type=radio name=\"action\" value=\"unsub\"> unsub</p>
  
  <P><input type=submit name=\"submit\" value=\"do it\"></p>
  </form>
  
  ";
  
  }--------------------------------------------------------------------------------
    你会注意到我把文本放在$text_block变量中。通过把文本放在一个变量中,接下来我所要做的就是在
  后面在主HTML模板内输出$text_block的值。这是个人习惯问题,你可以根据你喜欢的时