设为首页 收藏本站
查看: 3562|回复: 2

[经验分享] Postfix基础安装(三):安装Webmail前台

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-16 08:19:39 | 显示全部楼层 |阅读模式
说明:Linux下的开源Webmail有多种选择,Extmail(基于Maildir/Perl)、Squirrelmail(基于PHP) 、RoundCube(PHP+JS)、Horde、Surgemail(HTML)、Zimbra、Open WebMail(Perl)、iRedMail等
    本文使用的ExtMail&&ExtMan,是国内唯一开源免费的Webmail,前者是基于Maildir/Perl的webmail客户端,后者是支持MySQL/LDAP的邮件帐户管理系统;
    还自带了MailGraph_ext,基于mailgrpah/rrdtool的日志采集分析系统。
    ExtMail有专业版,功能更多更强大,也有开源免费版EMOS;
    EMOS是一个基于CentOS4/5并集成邮件系统的Linux发行版,直接安装就可以使用;
官方网站:
http://www.extmail.org/

1、安装
下载extmail-1.2.tar.gz和extman-1.1.tar.gz到/usr/local/src目录。
(可以从本文附件中下载)
1
2
3
4
5
6
[iyunv@mail ~]# cd /usr/local/src
[iyunv@mail src]# tar -zxvf extmail-1.2.tar.gz
[iyunv@mail src]# tar -zxvf extman-1.1.tar.gz
[iyunv@mail src]# mkdir /var/www/extsuite
[iyunv@mail src]# mv extman-1.1 /var/www/extsuite/extman
[iyunv@mail src]# mv extmail-1.2 /var/www/extsuite/extmail



2、配置extmail
1
2
3
4
5
6
[iyunv@mail src]# cd /var/www/extsuite
[iyunv@mail extsuite]# cp extmail/webmail.cf.default extmail/webmail.cf
[iyunv@mail extsuite]# vi extmail/webmail.cf
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail



3、配置extman
1
2
3
4
5
6
[iyunv@mail extsuite]# mkdir /var/www/extsuite/extman/session
[iyunv@mail extsuite]# cp extman/webman.cf.default extman/webman.cf
[iyunv@mail extsuite]# vi extman/webman.cf
SYS_SESS_DIR = /var/www/extsuite/extman/session/
SYS_DEFAULT_UID = 1002
SYS_DEFAULT_GID = 1002



    注意:用户和组1002是前一小节中创建的用户和组vmail,注意保持一致。
    目录session用来保存临时会话信息。
4、初始化数据库
(1)给数据库root用户设置密码:
1
2
3
4
[iyunv@mail extsuite]# service mysqld start
[iyunv@mail extsuite]# mysql -uroot
mysql>set password for root@localhost=password('123456');
mysql>quit




(2)导入extmail数据库:
1
[iyunv@mail extsuite]# mysql -uroot -p123456 < extman/docs/extmail.sql



    说明:这里导入的是数据库extmail的表结构
(3)修改参数后导入数据:
1
2
3
[iyunv@mail extsuite]# sed -i 's/extmail.org/yourmail.com/g' extman/docs/init.sql
[iyunv@mail extsuite]# sed -i 's/1000/1002/g' extman/docs/init.sql
[iyunv@mail extsuite]# mysql -uroot -p123456 < /var/www/extsuite/extman/docs/init.sql



    说明:这里将数据库文件中的域名修改成你自己的,用户和组ID修改成1002;这里导入了默认域以及默认管理员账号的数据。
(4)查看数据库:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[iyunv@mail extsuite]# mysql -uroot -p123456
mysql> use extmail;
mysql> show tables;
+-------------------+
| Tables_in_extmail |
+-------------------+
| alias             |
| domain            |
| domain_manager    |
| mailbox           |
| manager           |
+-------------------+
mysql> select username,uidnumber,gidnumber from mailbox;
+-------------------------+-----------+-----------+
| username                | uidnumber | gidnumber |
+-------------------------+-----------+-----------+
| postmaster@yourmail.com |      1002 |      1002 |
+-------------------------+-----------+-----------+
1 row in set (0.00 sec)
mysql> quit



    说明:表mailbox中存储的就是邮箱用户账号信息。

5、配置postfix
1
2
3
4
5
6
7
8
9
[iyunv@mail extsuite]# cp extman/docs/mysql_*.cf /etc/postfix/
[iyunv@mail extsuite]# vi /etc/postfix/main.cf
# 添加 extmail 配置
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_transport = maildrop
virtual_uid_maps = static:1002  
virtual_gid_maps = static:1002



6、设置权限和属主
1
2
[iyunv@mail extsuite]# chown root.root -R extmail extman
[iyunv@mail extsuite]# chown -R vmail:vmail extmail/cgi/ extman/cgi/ extman/session



7、配置Apache虚拟主机
1
2
3
4
5
6
7
8
9
10
11
12
13
[iyunv@mail extsuite]# vi /etc/httpd/conf.d/extmail.conf
# VirtualHost for ExtMail Solution
NameVirtualHost *:80

ServerName mail.yourmail.com
DocumentRoot /var/www/extsuite/extmail/html/
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/
# Suexec config
SuexecUserGroup vmail vmail




8、重启
1
2
3
4
[iyunv@mail extsuite]# service postfix restart
[iyunv@mail extsuite]# service httpd restart
[iyunv@mail extsuite]# chkconfig postfix on
[iyunv@mail extsuite]# chkconfig httpd on



9、建立Maildir
(1)手动建立Maildir
    用于存放用户邮件的目录;在WEB上创建其他域名邮箱,会在此自动建立相应域名目录。
1
2
3
[iyunv@mail extsuite]# cd extman/tools
[iyunv@mail tools]# ./maildirmake.pl /home/domains/yourmail.com/postmaster/Maildir
[iyunv@mail tools]# chown -R vmail:vmail /home/domains




(2)测试authlib认证登陆账号
    必须先启动authdaemond进程,否则报Authentication FAILED: Operation not permitted
1
2
3
4
5
6
7
8
9
[iyunv@mail tools]# /usr/local/sbin/authtest -s login postmaster@yourmail.com extmail
Authentication succeeded.
     Authenticated: postmaster@yourmail.com  (uid 1002, gid 1002)
    Home Directory: /home/domains/yourmail.com/postmaster
           Maildir: /home/domains/yourmail.com/postmaster/Maildir/
             Quota: 104857600S
Encrypted Password: $1$phz1mRrj$3ok6BjeaoJYWDBsEPZb5C0
Cleartext Password: extmail
           Options: (none)



    说明:输出表明ExtMan的安装正确,数据库也正确导入,courier-authlib能正确连接到mysql数据库。

10、安装其他依赖包
(1)安装绘图工具
    图形日志是基于RRDTOOL工具进行绘制图表的。
1
[iyunv@mail tools]# yum install -y rrdtool rrdtool-perl



(2)安装依赖perl模块
    说明:在运行mailgraph-init和访问http://10.188.1.86/extmail时会报错,
显示如下信息开头,是因为缺少相应的perl模块:
Can't locate RRDs.pm in @INC '''
1
2
3
4
5
6
7
8
9
#安装perl环境
[iyunv@mail tools]# yum install -y cpan perl
#安装perl软件包
[iyunv@mail tools]# yum install -y perl-YAML perl-Test-Exception perl-Crypt-PasswdMD5 perl-GD perl-CGI perl-Time-HiRes
#使用CPAN安装YUM源中没有的perl包
[iyunv@mail tools]# perl -MCPAN -e 'install Time::HiRes::Value'
[iyunv@mail tools]# perl -MCPAN -e 'install File::Tail'
[iyunv@mail tools]# perl -MCPAN -e 'install Unix::Syslog'
[iyunv@mail tools]# perl -MCPAN -e 'install DB_File'



    可以在CPAN官方网站搜索perl模块包:
http://search.cpan.org/

(3)启动进程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@mail tools]# cd /var/www/extsuite/extman
[iyunv@mail extman]# cp -R addon/mailgraph_ext/ /usr/local/
[iyunv@mail extman]# /usr/local/mailgraph_ext/mailgraph-init start
Starting mail statistics grapher: mailgraph_ext
Starting queue statistics grapher: qmonitor
[iyunv@mail courier-unicode-1.1]# ps aux|grep mailgraph_ext
root     63848  0.0  0.5 187384  5884 ?        SNs  15:53   0:00 /usr/bin/perl -w /usr/local/mailgraph_ext/mailgraph_ext.pl -l /var/log/maillog -d --daemon-pid=/var/run/mailgraph.pid --daemon-rrd=/var/lib
root     63850  0.2  0.4 181624  4204 ?        SNs  15:53   0:00 /usr/bin/perl -w /usr/local/mailgraph_ext/qmonitor.pl -d --daemon-pid=/var/run/qmonitor.pid --daemon-rrd=/var/lib
root     63852  0.0  0.0 103256   852 pts/1    S+   15:53   0:00 grep mailgraph_ext
[iyunv@mail extman]# /var/www/extsuite/extman/daemon/cmdserver -v -d
loaded ok
[iyunv@mail extman]# ps aux|grep cmdserver
root     36597  0.0  0.5 144572  5288 ?        Ss   10:23   0:00 /usr/bin/perl -w /var/www/extsuite/extman/daemon/cmdserver -v -d
root     36568  0.0  0.0 112656   980 pts/1    S+   10:21   0:00 grep --color=auto cmdserver
[iyunv@mail extman]# echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.d/rc.local
[iyunv@mail extman]# echo "/var/www/extsuite/extman/daemon/cmdserver -v -d" >> /etc/rc.d/rc.local



    说明:进程mailgraph-init用于生成图形日志;进程cmdserver用于生成extman主页的系统信息。
(4)定时任务
1
2
3
4
[iyunv@mail extman]# crontab -e
0 4 * * * /var/www/extsuite/extman/tools/expireusers.pl -all postmaster@yourmail.com
30 4 * * * /var/www/extsuite/extman/tools/reportusage.pl -all /home/domains postmaster@yourmail.com
[iyunv@mail extman]# service crond restart



说明:每天4点发送关于用户到期的报告给管理员邮箱;
每天4点半发送邮箱容量使用情况报告给管理员邮箱。

11、测试WEB访问
(1)访问邮箱
http://mail.yourmail.com/extmail/
1
2
3
账号:postmaster
密码:extmail
域名:yourmail.com



wKiom1SOTjXCswKSAAK0x7QK2KQ987.jpg
    登陆后给自己发封邮件测试,查看日志:
1
2
3
4
5
6
7
8
[iyunv@mail ~]# tailf /var/log/maillog
Dec  1 16:11:00 mail postfix/smtpd[63996]: connect from localhost[127.0.0.1]
Dec  1 16:11:00 mail postfix/smtpd[63996]: 31C081A1B7F: client=localhost[127.0.0.1]
Dec  1 16:11:00 mail postfix/cleanup[64003]: 31C081A1B7F: message-id=<20141201081100.31C081A1B7F@mail.yourmail.com>
Dec  1 16:11:00 mail postfix/qmgr[63952]: 31C081A1B7F: from=<postmaster@yourmail.com>, size=649, nrcpt=1 (queue active)
Dec  1 16:11:00 mail postfix/smtpd[63996]: disconnect from localhost[127.0.0.1]
Dec  1 16:11:00 mail postfix/pipe[64005]: 31C081A1B7F: to=<postmaster@yourmail.com>, relay=maildrop, delay=0.2, delays=0.09/0.03/0/0.09, dsn=2.0.0, status=sent (delivered via maildrop service)
Dec  1 16:11:00 mail postfix/qmgr[63952]: 31C081A1B7F: removed



    说明:这就是Postfix的一个最基本的邮件传递过程。
(2)访问邮箱管理后台
    http://mail.yourmail.com/extman/
1
2
账号:root@yourmail.com
密码:extmail*123*



    验证码的显示需要安装perl-GD,也可以取消验证码:
1
2
[iyunv@mail extsuite]# vi /var/www/extsuite/extman/webman.cf
SYS_CAPTCHA_ON=0



wKioL1SOTnGwPHCPAAIrVFfy58k047.jpg
12、检查Maildrop
(1)查看版本信息:

1
2
3
4
5
6
7
[iyunv@mail extsuite]# maildrop -v
maildrop 2.7.2 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled. #必须有这条
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.



(2)测试maildrop连接
1
2
3
4
5
6
7
8
[iyunv@mail extsuite]# echo "test" | maildrop -V 10 -d postmaster@yourmail.com
maildrop: authlib: groupid=1002
maildrop: authlib: userid=1002
maildrop: authlib: logname=postmaster@yourmail.com, home=/home/domains/yourmail.com/postmaster, mail=/home/domains/yourmail.com/postmaster/Maildir/
maildrop: Changing to /home/domains/yourmail.com/postmaster
Message envelope sender=MAILER-DAEMON
maildrop: Attempting .mailfilter
maildrop: Delivery complete.




13、检查是否自动创建Maildir
    在webman中创建一个邮箱用户test;
    检查是否会在/home/domains下自动生成test邮箱目录:
1
2
3
4
[iyunv@mail tools]# ll /home/domains/yourmail.com/
总用量 8
drwx------. 3 vmail vmail 4096 12月  1 15:05 postmaster
drwx------. 3 vmail vmail 4096 12月  1 16:24 test




小结:
第一阶段完成:实现Postfix邮箱基础架构Apache+MySQL+Php+Postfix+CourierAuthlib+Maildrop+Extmail+Extman+mailgraph_ext+RRDTool


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38065-1-1.html 上篇帖子: Outlook2007最小化至托盘 下篇帖子: 创建会议室邮箱
累计签到:1 天
连续签到:1 天
发表于 2016-1-17 01:01:11 | 显示全部楼层
你好,真的感谢你的分享,我CENOS6.7按你操作启动authdaemond进程,也报 Authentication FAILED: Operation not permitted,另
maildrop -v
maildrop: error while loading shared libraries: libunicode.so.1: cannot open shared object file: No such file or directory

请帮助 。谢谢

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表