本文為大家提供了php郵件管理器源碼,希望大家喜歡。
1、需求分析
管理員應該能夠建立和修改郵件內容。
管理員應該能夠將文本或HTML格式的新聞信件發送給一個列表中的所有訂閱者。
用戶應該能夠通過注冊使用一個站點,並且可以進入並修改他們的個人資料。
用戶應該能夠訂閱該站點的任意一個列表的新聞信件。
用戶應該能夠取消一個郵件列表的訂閱。
用戶應該能夠根據個人喜好以HTML格式或純文本格式存儲新聞信件。
處於安全的原因,用戶應該不能將郵件發送到列表,或者不能看見其他用戶的郵件地址。
用戶和管理員應該能夠查看有關郵件列表的信息。
用戶和管理員應該能夠查看過去已經噶送給某個列表(存檔文件)上的新聞信件。
2、解決方案
2.1 用戶權限圖



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

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

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);
希望本文所述對大家學習php程序設計有所幫助。