postfix+mysql+dovecot+extmail
slinux 和iptables都关掉!!!!!!
实验一:准备环境:slinux 和iptables都关掉
(1)yum install mysql mysql-server httpd telnet dovecot-mysql -y
(2)mkdir /var/www/extsuite
cd /var/www/extsuite
lftp 192.168.0.254
cd /pub/docs/extmail
get extmail-1.2.tar.gz extman-1.1.tar.gz
tar zxf extmail-1.2.tar.gz
tar zxf extman-1.1.tar.gz
cd /var/www/extsuite/
mv extmail-1.2 extmail
mv extman-1.1 extman
cd extmail
ls
cp webmail.cf.default webmail.cf
cd extman
ls
cp webmail.cf.default webmail.cf
(3)cd ../extman/docs
mysql < extmial.sql
vi init.sql
INSERT INTO `mailbox` VALUES ('[email protected]','postmaster','westos','','PostMaster','
LOCK TABLES `manager` WRITE;
INSERT INTO `manager` VALUES ('[email protected]','westos','admin','root',
mysql < init.sql(将数据库中的一些框架和表加进数据库中。。。。?)
(4) cp mysql_virtual_alias_maps /etc/postfix/ mysql-alias.cf
cp mysql_virtual_domains_maps /etc/postfix/ mysql-domains.cf
cp mysql_virtual_mailboxs_maps /etc/postfix/ mysql-mailboxs.cf
cd /etc/postfix/
vi mysql-alias.cf
- user = extmail
- password = extmail
- hosts = localhost
- dbname = extmail
- table = alias
- select_field = goto
- where_field = address
- additional_conditions = AND active = '1'
vi mysql-domains.cf
- user = extmail
- password = extmail
- hosts = localhost
- dbname = extmail
- table = domain
- select_field = domain
- where_field = domain
- additional_conditions = AND active = '1'
vi mysql-mailboxs.cf
- user = extmail
- password = extmail
- hosts = localhost
- dbname = extmail
- table = mailbox
- select_field = maildir
- where_field = username
- additional_conditions = AND active = '1'
编辑完之后要检查文件编写的正确与否:
postmap -q "[email protected]" mysql:/etc/postfix/mysql-mailboxs.cf
extmail.org/postmaster/Maildir/
postmap -q "[email protected]" mysql:/etc/postfix/mysql-alias.cf
[email protected]
postmap -q "extmail.org" mysql:/etc/postfix/mysql-domains.cf
extmail.org
postfix reload
/etc/init.d/postfix restart
收信
(5)下面是关于dovecot的一些配置:
cd /etc/dovecot/conf.d/
vi 10-mail.conf
mail_location = maildir:/home/vmail/%d/%n/Maildir
first_valid_uid = 600
vi 10-auth.conf
!include auth-system.conf.ext
!include auth-sql.conf.ext
cp /usr/share/doc/dovecot-2.0/example-config/dovecot-sql.conf.ext /etc/dovecot
vi /etc/dovecot/dovecot-sql.conf.ext
connect = host=localhost dbname=extmail user=extmail password=extmail(会自动生成的用户名)
default_pass_scheme=PLAIN
password_query = \
SELECT username, domain, password \
FROM mailbox WHERE username = '%u'
# where userid = '%u'
user_query = SELECT maildir,600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'
(7)
postconf -e virtual_mailbox_base=/home/vmail
postconf -e virtual_uid_maps=static:600
postconf -e virtual_gid_maps=static:600
postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-alias.cf
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-mailboxs.cf
postconf -e inet_interface=all
/etc/init.d/postfix restart
测试完成:/etc/init.d/dovecot restart
telnet localhost 110
user [email protected]
pass westos
list
quit
显示OK 代表是正确的。
倘若出现上述的情况,是错误的,有可能是你的配置文件有错误,你可以试着去检查文件/etc/dovecot/dovecot-sql.conf.ext 本人的错误是把: user_query = SELECT maildir,600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u' 后面的username写成:userid了啊。。。。 如果你找不到错误原因,你可以查看日志tail /var/log/maillog 正确的如下(不会自行终止哦!):
实验二:web搭建收信模式
步骤(1)环境:yum install perl-CGI -y
(2)vi /etc/httpd/conf/httpd.conf
- <VirtualHost *:80>
- DocumentRoot /var/www/html
- ServerName desktop85.example.com
- </VirtualHost>
- <VirtualHost *:80>
- DocumentRoot /var/www/extsuite/extmail/html
- ServerName mail.extmail.org
- ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
- Alias /extmail /var/www/extsuite/extmail/html
- ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
- Alias /extman /var/www/extsuite/extman/html
- SuexecUserGroup vmail vmail
- </VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName desktop39.example.com
</VirtualHost>
<VirtualHost *:80>
ServerName mail.extmail.org
DocumentRoot /var/www/extsuite/extmail/html/ (这里的意思是设置你进入之后默认访问的网页)
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi (别名/extmail/cgi代表的就是/var/www/extsuite/extmail/cgi)
Alias /extmail /var/www/extsuite/extmail/html(以上两句的大致意思是网页产生实际上来自于脚本/var/www/extsuite/extmail/cgi,用别名/extmail/cgi就是告诉系统去执行 那里面的脚本CGI文件,然后你输入/extmail就是访问/var/www/extsuite/extmail/html,你输入extman就是访问/var/www/extsuite/extman/html,系统默认你输入mail.extmail.org就是去访问/var/www/extsuite/extmail/html/,所以说默认进入的是客户端)
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup vmail vmail
</VirtualHost>
/etc/init.d/httpd restart
cd /var/www/extsuite/
chown vmail.vmail /var/www/extsuite/extmail/cgi/ /var/www/extsuite/extman/cgi/ -R
vi /var/www/extsuite/extmail/webmail.cf
SYS_SESS_DIR = /tmp
SYS_CRYPT_TYPE = plain(设置密码为明文的,否则你登录不进去。)
SYS_LOG_ON = 0//(该值为0意思是不启动日志,如果你 不关闭日志,那么你进入的时候会出现Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86. 报错,不能直接进去,只有把日志禁掉,才可以直接进去,)
SYS_MAILDIR_BASE = /home/vmail//收到邮件的目录。来收邮件的
SYS_MYSQL_USER = extmail//链接数据库的用户名
SYS_MYSQL_PASS = extmail //链接数据库的密码
SYS_MYSQL_DB = extmail //使用的数据库的名字
SYS_MYSQL_HOST = localhost //说明数据库在本机上。
SYS_MYSQL_SOCKET= /var/lib/mysql/mysql.sock
SYS_CAPTCHA_ON = 0(意思是你进入的时候不会弹出验证码要你输入)
vim /var/www/extsuite/extman/ webman.cf(extman属于后台,默认的设置就可以的)
SYS_MAILDIR_BASE = /home/vmail
SYS_SESS_DIR = /tmp/
SYS_CAPTCHA_ON = 0(意思是你进入的时候不会弹出验证码要你输入)
SYS_CRYPT_TYPE = plain
(意思是你以管理员身份进入的时候输入明文密码就可以进来)
/etc/init.d/httpd restart
/etc/init.d/dovecot restart
/etc/init.d/mysqld restart
注意:extmail是属于前台,主要是指的是关于图形界面的一些操作,就像你等录邮箱的时候你在接收邮件的时候那就是前台,而extman是指的后台,主要指做的是管理员方面的工作,倘若你的帐号过期或者有什么问题,可以给你禁止。如果你在appache中输入:mail.extmail.org/extman就可以进去,然后选择ExtMan Login就可以以管理员身份进去,然后你输入root进去。密码当然是你的root密码了。然后你在里面可以创建新的域名,也可以在该域中添加用户,jack密码redhat。假如你添加的域名为linux.org,然后你在extmail客户端的时候可以以用户:jack password:redhat。Domail:linux.org或者是你选择添加的其他的域名,进去之后你可以发送邮件接收邮件等信息。
配置完成
进行apache测试
假设以上设置是在虚拟机下设置的,那么你先在要用真机去测试在真机的vi /etc/hosts
写进一条 192.168.0.139(IP地址) mail.extmail.org
打开浏览器,然后 输入 mail.extmail.org
如果出现下面:
Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 86.
则说明是Unix-Syslog没装,或者你可以在webmail.cf中已经把SYS_LOG_ON = 0关了就不会出现那样的提示了。。。Unix-Syslog的安装下面,)
postmaster
westos
然后输入用户名进去
点击compose你就可以发送邮件,如发送为: "ExtMail Support" <[email protected]>,意思是发给本地的,你可以在Inbox中接收到你发送来的邮件信息。
你就会看到你创建的数据库信息。
compose 发信 to:[email protected] [email protected]
在你的sent里面可以看到已发送的邮件,在Inbox可以看到你收到的邮件信息
同样你可以在命令行下输入: mail [email protected]就可以发送到你发送的信息。
实验三:
步骤(1)cd /var/www/extsuite/
cd extmail
vi webmail.cf
SYS_LOG_FILE = /var/log/extmail.log
SYS_LOG_TYPE = file(syslog是你产生的日志于你系统产生的日志混在一起了,而file意思是产生独立的文件)
保存退出。
touch /var/log/extmail.log
chmod 777 /var/log/extmail.log(意思是让日志文件写进去)
(2) cd /var/www/extsuite
lftp 192.168.0.254
cd pub/docs/extmail
get Unix-Syslog-1.1.tar.gz(你刚才在webmail.cf中已经把SYS_LOG_ON = 0关了。因为开启会报错,你现在安装之后可以收发日志不报错。)
(软件也可以从网上下载。)
tar zxf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
你可以查看README如何使用该源码。
在当前路径下执行
perl Makefile.PL
make test
make install
注意在你执行上述三步的时候有可能会缺少某些包,例如,你看能会用到 yum install make gcc perl-ExtUtils-MakeMaker perl-GD -y
(3)安装完之后:
测试:
http://mail.extmail.org
此时你登录你的账户
postmaster
westos
进入你可以管理员的身份添加用户http://mail.extmail.org/extman/cgi,新增加域名信息 如:Domain :linux.org
Description: test
Max users: 100
Max Alias: 100
Max Quota: 500
Max Netdisk :500
Enable signup service: Active
比如你在linux.org域里增加一个用户jack,密码为jack1
那么你推出之后,登录的时候就可以以此用户登录了。
(4) yum install perl-rrdtool -y(显示动态日志的时候系统绘图)
cd /var/www/extsuite/extman
cd addon/
cp -r mailgraph_ext/ /usr/local/
cd /usr/local/mailgraph_ext
vi mailgraph_init
BASEDIR=/usr/local/mailgraph_ext
./mailgraph-init start
在上述操作的过程中可能会出现需要安装 yum install perl-File-Tail
也可以在 服务器上下载 lftp 192.168.0.254
cd /pub/docs/extmail
get File-Tail-0.99.3.tar.gz
tar zxf File-tail-0.99.3.tar.gz
cd File-tail-0.99.3
在当前路径下执行
perl Makefile.PL
make test
make install
运行中可能回报错,此时也许缺少 perl-Time-HiRes yum install perl-Time-HiRes -y
当上述三步执行成功之后。
./mailgraph-init start 成功之后
测试:
appache测试:
http://mail.extmail.org/extman可以看到动态的日志。
在System下的Graph Log可以查看动态的日志。
本文出自 “资料小结” 博客,谢绝转载!