- 论坛徽章:
- 0
|
学习邮件系统搭建也已经有一段时间了,下面就自己的所学进行一些总结。
相关软件:POSTFIX,MYSQL,EXTMAIL,APACHE
作者:户禾
声明:所写东西全系自己所学所感,可能类似平台搭建网上也许有,但是感觉自己真正总结出来时候,印象会越深。所有配置,我都把相应的含义注解了,如有异议,欢迎和我讨论!!我的邮箱:
thinkingmyself@gmail.com
第一步:POSTFIX的基本设置:
这里需要注意,RHEL系统中默认使用SENDMAIL作为邮件服务器,可以使用命令:system-switch-mail来切换成postfix.因为系统提供两个MTA,而且POSTFIX在安装时候没有加载mysql的
模块,需要重新编译。编译时候一定要记得阅读INSTALL文档。
装包:postfix-2.3.3-2.i386.rpm
路径:/etc/postfix/
主要配置文件:main.cf
基本配置:main.cf
myhostname = station3.example.com
指明自己的主机名
mydomain = example.com
指明自己的域名
myorigin = $mydomain
从本机发出的邮件一域名为结尾
inet_interfaces = all
指明可以接受从任何地方来的邮件
mydestination = $myhostname.$mydomain
指明当接受到以station3.example.com和example.com为结尾的邮件是,就认为是给自己发的
mynetworks = 222.24.89.0/24, 127.0.0.0/8
指明只有192.168.0.和127.两个网段的可以访问postfix
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
两个都指明了别名数据库的位置
第二步:MYSQL的安装与配置:
装包: mod_auth_mysql-3.0.0-3.1.i386.rpm
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-bench-5.0.22-2.1.0.1.i386.rpm
mysql-connector-odbc-3.51.12-2.2.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
mysql-test-5.0.22-2.1.0.1.i386.rpm
php-mysql-5.1.6-15.el5.i386.rpm
安装成功可以直接使用命令: mysql -uroot进入MYSQL数据库
因为安装成功只有MYSQL默认密码为空,所以不用输入密码
如果不熟悉MYSQL的语言,并不是就不能驾驭它了,这里我推荐使用PHPMYADMIN这个软件
具体安装方法:把此包放到/var/www/html目录下面,然后解压,并在APACHE的配置文件中
开启虚拟主机,设置如下,至于其他APACHE的基本配置将在APACHE那块具体解释:
DocumentRoot /var/www/html/
ServerName station3.example.com
这样就可以利用图形化的界面来访问MYSQL了。
在firefox中可以输入ttp://192.168.0.3/phpmyadmin来访问你的MYSQL数据库了。
在MYSQL中创建postfix库,并在postfix库中创建email表,在email表中,创建四个字段:
username,password,domain,maildir
这里为了简单起见,我设置username为test@example.com,password为明文的123,domain为example.com,maildir为example.com/test/
注意上面的test后面的/很重要,如果有则会在test下面为每个用户创建一个文件夹用来存放你的邮件信息,如果无,则把所有的邮件信息统统放到test下面。
完成以上之后在命令行下进入MYSQL写下:grant all on postfix.* to postfix@localhost identified by 'test'; 然后flush privileges(首先要保证postfix这个用户存在,如果没有要创建)
第三步:EXTMAIL的设置:
装包:extmail, extman
首先要创建目录: /var/www/extsuite
把extmail和extman解压到其下面,然后进入extmail里面cp webmail.cf.default webmail.cf
vi webmail.cf
SYS_SESS_DIR = /tmp/extmail
用来指定会话目录的位置,需要自己创建并修改权限为postfix.postfix
SYS_MESSAGE_SIZE_LIMIT = 5242880
设置用户上传附件的最大值
SYS_MAILDIR_BASE = /home/postfix
指定用户邮件目录
SYS_CRYPT_TYPE = plain
密码的默认加密方式为明文
然后进入extman中
SYS_SESS_DIR = /tmp/extman
用来指定会话目录的位置,需要自己创建并修改权限为postfix.postfix
SYS_MAILDIR_BASE = /home/postfix
指定用户邮件目录
SYS_CAPTCHA_ON = 0
指明不用验证码
SYS_CAPTCHA_LEN = 6
指明验证码的长度
SYS_GROUPMAIL_SENDER = postmaster@example.com
指明组的邮件的发送者,如果不进行设置,MTA将报错
SYS_BACKEND_TYPE = mysql
指定数据库的类型
SYS_CRYPT_TYPE = plain
密码的默认加密方式为为明文
然后进入到docs中
vi init.sql
把里面所有的域名都改为example.com
然后把postmaster@example.com和root@example.com的密码改为明文的,如test
然后把extmail.sql和init.sql导入到MYSQL中
mysql mysql_virtual_alias_maps.cf /etc/postfix/
cp mysql_virtual_domains_maps.cf /etc/postfix/
cp mysql_virtual_mailbox_maps.cf /etc/postfix/
把需要应用extmail登录postfix的用户相关的验证信息放到postfix下面
并在main.cf中写入
virtual_mailbox_base = /home/postfix/
即把postfix邮件仓库中所有的用户认证信息都交由用户postfix管理
virtual_uid_maps = static:502
virtual_gid_maps = static:502
指定poistfix的uid和gid
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
指定用户认证的内容,包括:username,domain,maildir
第四步:APACHE的配置:
装包:httpd-*
vi /etc/httpd/conf/httpd.conf
Listen 80
http监听的端口
ServerName station3.example.com:80
设置httpd的服务器名字
DocumentRoot "/var/www/html"
当APACHE为public时候,firefox访问的默认路径
# UserDir disable
默认为开启的,要把它关掉
UserDir public_html
和上面的对应,说明访问不需要认证
NameVirtualHost *:80
开启虚拟主机
ServerName mail.westos.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extmail /var/www/extsuite/extmail/html
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup postfix postfix
这个地方主要是为了搭建webmail,使得用户可通过APACHE,利用EXTMAIL.来进入POSTFIX
相关意思就不赘述了。
因为还没有看到dovecot和tls、ssl,所以没有把这些加进去,我会利用这一段时间尽快这些内容加进去的,实现真正的认证和安全!!
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/75682/showart_1271342.html |
|