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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


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