当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 基于Fedora上建立功能强大的邮件服务器

Linux服务器
RedHatLinux网络服务器构架实务(七)
RedHatLinux网络服务器构架实务(八)
RedHatLinux网络服务器构架实务(九)
在LINUX下使用Squid代理服务器
构建没有NT服务器的NT域
用Samba实现文件服务器功能
Debian服务器设置入门系列教程
RedHat8.0服务器配置指南--Webmail的实现
代理服务器Squid使用详解
为编程开发准备一台友好的CVS服务器
Linux的FTP服务器设置篇
在Linux代理服务器上设置防火墙
在Linux上用Qpopper建立POP3服务器
用Linux引导CD排除服务器故障
在Linux上如何重新进行Domino服务器的配置
TurbolinuxforiSeries服务器软/硬件需求
Linux服务器中架设AntiVir指南
基于Linux的Web服务器性能测试
Linux怎样做计费服务器
网络服务器基础

Linux服务器 中的 基于Fedora上建立功能强大的邮件服务器


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


一、软件的准备
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.[root@localhostroot]#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########################

[root@localhostroot]#mysqlpostfix</work/postfix.sql

C.对表的内容的一些说明.

mysql>usepostfix
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是虚拟的邮箱[email protected],将被转发到goto下的联结中.
goto可以用简单的名字,如果是本地用户名,如(root,postmaster,etc.),或者是整个的邮箱名字,[email protected]

Mailbox表的内容:
Userid使用者编码
username可以是user.domain.tld或[email protected]
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
[root@localhostpam_mysql]#cd/etc/pam.d
[[email protected]]#cp/work/postfixpostfix
[[email protected]]#
postfix的内容如下:
##########/etc/pam.d/postfix##################
echoauthsufficientpam_mysql.souser=postfixpasswd=postfixhost=localhostdb=postfixtable=mailboxusercolumn=usernamepasswdcolumn=passwordcrypt=1
echoaccountrequir