基于Fedora上建立功能强大的邮件服务器
一、软件的准备
A.检查你的系统是否已安装了以下软件
1.pam
2.pam-devel
3.mysql
4.mysql-servel
5.mysql-devel
6.imap-devel
7.sharutils
B.下载以下软件
1.metamail*.i386.rpm
2.pam-mysql
3.cyrus-sasl-2.1.15
4.postfix-2.0.16
5.courier-imap
C.说明
mysql-devel在第3个盘。我忘了装,结果pam-mysql和postfix的编译过不了。metamail和sharutils是取验证码用的。
二、mysql数据库和表的建立
A.#mysql
WelcometotheMySQLmonitor. Commandsendwith;or\g.
YourMySQLconnectionidis3toserverversion:3.23.58
Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.
mysql>usemysql
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A
Databasechanged
mysql>INSERTINTOdb(Host,Db,User,Select_priv)VALUES('localhost','postfix','postfix','Y');
QueryOK,1rowaffected(0.00sec)
mysql>CREATEDATABASEpostfix;
QueryOK,1rowaffected(0.00sec)
mysql>GRANTALLONpostfix.*TOpostfix@localhost
->IDENTIFIEDBY"postfix";
QueryOK,0rowsaffected(0.00sec)
mysql>FLUSHPRIVILEGES;
QueryOK,0rowsaffected(0.00sec)
mysql>quit
Bye
B.把下列文字复制存为postfix.sql
########potfix_sql########bigin##################
CREATETABLEalias(
usernamevarchar(255)NOTNULLdefault'',
gototextNOTNULL,
domainvarchar(255)NOTNULLdefault'',
PRIMARYKEY(username)
)TYPE=MyISAM;
CREATETABLEdomain(
domainvarchar(255)NOTNULLdefault'',
descriptionvarchar(255)NOTNULLdefault'',
PRIMARYKEY(domain)
)TYPE=MyISAM;
CREATETABLEmailbox(
useridchar(20)binaryNOTNULLdefault'',
usernamevarchar(255)NOTNULLdefault'',
passwordvarchar(255)NOTNULLdefault'',
homevarchar(255)NOTNULLdefault'',
maildirvarchar(255)NOTNULLdefault'',
namevarchar(255)NOTNULLdefault'',
uidsmallint(5)unsignedNOTNULLdefault'12345',
gidsmallint(5)unsignedNOTNULLdefault'12345',
quotavarchar(255)NOTNULLdefault'',
domainvarchar(255)NOTNULLdefault'',
create_datedateNOTNULLdefault'0000-00-00',
create_timetimeNOTNULLdefault'00:00:00',
change_datedateNOTNULLdefault'0000-00-00',
change_timetimeNOTNULLdefault'00:00:00',
last_accessint(10)unsignedNOTNULLdefault'0',
passwd_lastchangedint(10)unsignedNOTNULLdefault'0',
statustinyint(4)NOTNULLdefault'1',
PRIMARYKEY(username),
KEYstatus(status)
)TYPE=MyISAM;
#####################end########################
#mysqlpostfixusepostfix
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A
Databasechanged
mysql>showtables;
+-------------------+
|Tables_in_postfix|
+-------------------+
|alias|
|domain|
|mailbox |
+-------------------+
3rowsinset(0.00sec)
mysql>descalias;
+----------+--------------+------+-----+---------+-------+
|Field|Type|Null|Key|Default|Extra|
+----------+--------------+------+-----+---------+-------+
|username|varchar(255)| |PRI|| |
|goto|text| ||| |
|domain |varchar(255)| ||| |
+----------+--------------+------+-----+---------+-------+
3rowsinset(0.00sec)
mysql>descdomain;
+-------------+--------------+------+-----+---------+-------+
|Field |Type|Null|Key|Default|Extra|
+-------------+--------------+------+-----+---------+-------+
|domain |varchar(255)| |PRI|| |
|description|varchar(255)| ||| |
+-------------+--------------+------+-----+---------+-------+
2rowsinset(0.00sec)
mysql>descmailbox;
+--------------------+----------------------+------+-----+------------+-------+
|Field |Type|Null|Key|Default|Extra|
+--------------------+----------------------+------+-----+------------+-------+
|userid|varchar(20)binary | ||| |
|username |varchar(255)| |PRI|| |
|password |varchar(255)| ||| |
|home |varchar(255)| ||| |
|maildir|varchar(255)| ||| |
|name |varchar(255)| ||| |
|uid|smallint(5)unsigned| ||12345 | |
|gid|smallint(5)unsigned| ||12345 | |
|quota |varchar(255)| ||| |
|domain|varchar(255)| ||| |
|create_date|date| ||0000-00-00| |
|create_time|time| ||00:00:00 | |
|change_date|date| ||0000-00-00| |
|change_time|time| ||00:00:00 | |
|last_access|int(10)unsigned| ||0 | |
|passwd_lastchanged|int(10)unsigned| ||0 | |
|status|tinyint(4) | |MUL|1 | |
+--------------------+----------------------+------+-----+------------+-------+
17rowsinset(0.00sec)
mysql>
domain表的解释:
domain任意的domain.
description通常是2种"local:"用于本地的or"virtual:"用于是虚拟的.
alias表的解释:
username是虚拟的邮箱address@domain.tld,将被转发到goto下的联结中.
goto可以用简单的名字,如果是本地用户名,如(root,postmaster,etc.),或者是整个的邮箱名字,user@domain.tld。
Mailbox表的内容:
Userid使用者编码
username可以是user.domain.tld或user@domain.tld
password在mysql中用encrypt('password')输入.
name使用着的真实姓名。
uid虚拟用户身份uid
gid组的gid
home"/usr/local/virtual/".Maildirs必须在此目录下。
domain这栏可以不要,但有些软件需要他。
maildir是整个地址,必须带”/”结尾。
Quota邮箱的空间或信息量的限制。
status0为禁止。"MYSQL_WHERE_CLAUSE=status" .
三、pam-mysql的编译
tarpam-mysql-5.0.tar.gz
makecppam_mysql.so/lib/security
四、修改pam
#cd/etc/pam.d
#cp/work/postfixpostfix
#
postfix的内容如下:
##########/etc/pam.d/postfix##################
echoauthsufficientpam_mysql.souser=postfixpasswd=postfixhost=localhostdb=postfixtable=mailboxusercolumn=usernamepasswdcolumn=passwordcrypt=1
echoaccountrequir
页:
[1]