Warm Mail的数据库相当简单,因为实际上我们并不打算在其中保存任何电子邮件。
我们需要保存系统用户的信息,我们将为每个用户保存如下所示的字段信息:
■用户名——用户期望出现在Warm Mail中的用户名。
■密码——用户期望出现在Warm Mail中的用户密码。
■地址——用户期望出现在From field中的电子邮件地址,该地址将出现在从该系统发出去的电子邮件的From域。
■显示名称——他们想在发送给其他人的邮件中显示的名称。
我们也需要为那些检查该系统的用户存储账户信息。对于每一个账户,必须保存以下信息:
■用户名——该账户所属的Warm Mail用户。
■服务器——该账户所在的机器,例如,本地机或mail.tangledweb.com.au,或其他Domain(域)。
■端口——当使用该账户时连接的端口号。通常,对于POP3服务器来说,这个端口是110,而对于IMAP服务器来说,则是143。
■类型——用来连接到该服务器的协议,POP3或者IMAP。
■远程用户——连接到邮件服务器的用户名。
■远程口令——连接到邮件服务器的口令。
■账户ID——区别账户的唯一标识符。
可以通过运行程序清单29-1中所示的SQL语句来创建这个应用程序的数据库。
程序清单29-1 create_database.sql——用来创建邮件数据库的SQL
create database mail;
use mail;
create table users
(
username char(16)not null primary key,
password char(40)not null,
address char(100)not null,
displayname char(100)not null
);
create table accounts
(
username char(16)not null,
server char(100)not null,
port int not null,
type char(4)not null,
remoteuser char(50)not null,
remotepassword char(50)not null,
accountid int unsigned not null auto_increment primary key
);
grant select,insert,update,delete
on mail.*
to [email protected] identified by'password';
请记住,我们可以通过输入如下所示的命令来执行这个SQL语句:
mysql-u root-p<create_database.sql
我们必须提供root用户密码。此外,还应该在运行以上命令之前修改create_database.sql和db_fns.php中的邮件用户密码。
在本书附带的文件中,我们提供了一个叫做populate.sql的SQL文件。在这个应用程序中,我们没有创建用户注册或管理进程。如果要在一个更大规模的系统上使用该软件,可以自己添加一个。但是如果要作为个人使用,只需要将自己的账户信息插入到数据库中。populate.sql脚本为做这些提供了一个模板,以此将详细信息插入到其中并运行它以便将自己设置为用户。