您的位置:首页 > 编程语言 > PHP开发

一个简单的PHP邮件列表管理器

2015-09-11 10:22 597 查看

1、需求分析

管理员应该能够建立和修改邮件内容。
管理员应该能够将文本或HTML格式的新闻信件发送给一个列表中的所有订阅者。
用户应该能够通过注册使用一个站点,并且可以进入并修改他们的个人资料。
用户应该能够订阅该站点的任意一个列表的新闻信件。
用户应该能够取消一个邮件列表的订阅。
用户应该能够根据个人喜好以HTML格式或纯文本格式存储新闻信件。
处于安全的原因,用户应该不能将邮件发送到列表,或者不能看见其他用户的邮件地址。
用户和管理员应该能够查看有关邮件列表的信息。
用户和管理员应该能够查看过去已经噶送给某个列表(存档文件)上的新闻信件。

2、解决方案

2.1 用户权限图







2.2 邮件列表管理器中的文件列表

文件名称

类型

描述

index.php

应用程序

运行整个程序中的主要脚本

include_fns.php

函数

该程序包含文件的集合

data_valid_fns.php

函数

验证输入数据的函数集合

db_fns.php

函数

连接到mlm数据库中的函数集合

mlm_fns.php

函数

该应用程序专用的函数集合

output_fns.php

函数

输出HTML的函数集合

upload.php

组件

该脚本对管理员使用的文件上载组件进行管理。单独列出以简化安全机制

user_auth_fns.php

函数

用户验证的函数集合

create_database.sql

SQL

用来设置mlm数据库,设置Web用户和管理员用户的SQL

2.3 邮件列表管理器中可能的操作

动作

执行者

描述

log-in

任何人

为用户给出一个登录表单

log-out

任何人

结束一个会话

new-account

任何人

为用户创建一个新账号

store-account

任何人

保存账号详细信息

show-all-lists

任何人

显示可供使用的邮件列表的清单

show-archive

任何人

显示特定列表的存档新闻信件

information

任何人

显示特定列表的基本信息

account-settings

登录用户

显示用户账户设置

show-other-lists

登录用户

显示用户没有订阅的邮件列表

show-my-lists

登录用户

显示用户已经订阅的邮件列表

subscribe

登录用户

用户订阅特定列表

unsubscribe

登录用户

取消用户对特定列表的订阅

change-password

登录用户

显示修改密码表单

store-change-password

登录用户

在数据库中更新用户密码

create-mail

管理员

显示上载新闻信件表单

create-list

管理员

显示创建新邮件列表表单

store-list

管理员

在数据库中保存邮件列表的详细信息

view-mail

管理员

显示已经上载但仍未发送的新闻信件

send

管理员

向订阅者发送新闻信件

3、实现数据库

CREATE DATABASE mlm;	#创建mlm数据库

use mlm;	#使用mlm数据库

CREATE TABLE lists	#列表
(
	listid INT AUTO_INCREMENT NOT NULL PRIMARY KEY,	#列表ID
	listname CHAR(20) NOT NULL, #列表名
	blurb VARCHAR(255) #列表主要内容
);

CREATE TABLE subscribers	#订阅者
(
	email CHAR(100) NOT NULL PRIMARY KEY, #邮箱
	realname CHAR(100) NOT NULL, #真实姓名
	mimetype CHAR(1) NOT NULL, #想要接收邮件类型
	password CHAR(40) NOT NULL, #密码
	admin TINYINT NOT NULL #管理员标记
);

CREATE TABLE sub_lists #订阅-列表关系表
(
	email CHAR(100) NOT NULL,	#邮件
	listid INT NOT NULL	#列表ID
);

CREATE TABLE mail #邮件表
(
	mailid INT AUTO_INCREMENT NOT NULL PRIMARY KEY, #邮件ID
	email CHAR(100) NOT NULL, #发送方
	subject CHAR(100) NOT NULL, #主题
	listid INT NOT NULL, #列表ID
	status CHAR(10) NOT NULL, #邮件状态,是否被发送
	sent DATETIME, #发送时间
	modified TIMESTAMP #最后一次修改时间戳
);

CREATE TABLE images #图像表
(
	mailid INT NOT NULL, #邮件ID
	path CHAR(100) NOT NULL, #路径
	mimetype CHAR(100) NOT NULL #图片类型
);

GRANT SELECT,INSERT,UPDATE,DELETE	 #创建mlm用户
ON mlm.*
TO mlm@localhost IDENTIFIED BY 'password';

#插入订阅者标记
INSERT INTO subscribers VALUES
('admin@localhost','Administrative User','H',SHA1('admin'),1);

INSERT INTO subscribers VALUES
('Switch_1@switch.com','Administrative User','H',SHA1('admin'),1);


4、实现源代码

下载地址:一个简单的PHP邮件列表管理器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: