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

Linux服务器
Linux Samba Server的配置详解
Linux系统下配置功能完善的Web服务器
Linux终端代理的设置方法介绍
Fodera Core 7系统下构建CVS服务器的方法
Linux进入系统时自动设置环境变量的方法
介绍GPG命令加密文件的方法
如何清理Linux系统中不需要的文件
Linux系统中两种替代“花生壳”的办法
Linux下配置 Tomcat+JDK+MySQL应用平台
Linux操作系统下RPM软件包的使用技巧
linux知识:htaccess
linux:.htaccess文件使用教程
Apache [forbidden 403]错误的解决办法
FreeBSD6.1快速安装配置Bugzilla2.22
访问网站403错误 Forbidden解决方法
httpd.conf文件配置详解
Apache中禁止IP段,在httpd.conf中的写法
apache禁止使用IP访问的实现方法
Apache中禁止以目录方式访问的设置
.htaccess学习笔记

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 42 ::
收藏到网摘: 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