咱们接着上次的说,本次没有小标题。想了半天也没想出个好名子来,因为这次我们要做三件事:1.搭建基于Postfix的webmail;2.设置用户别名和邮件群组;3.设置邮件大小、邮箱空间的限制。环境还是之前的,做之前可要确认好apache、mysql、php、postfix、dovecot都是OK的啊!本次还是分为三部分来做,闲话就不多说了,咱们开始吧!
第一部分:构建基于Postfix的webmail
我想多数人应该喜欢webmail吧,多方便啊!走哪都能用。Postfix支持OpenWebmail、Extmail、SquirrelMail... ...太多太多了。我们就先来说一下SquirrelMail。其它的如果有时间一定会再说。咱们先得到SquirrelMail的官方网站去下载程序文件包squirrelmail-1.4.13.tar.bz2和中文语言包zh_CN-1.4.13-20071220.tar.bz2地址:Http://www.squirrelmail.org,你们可以下载更新一点的,做法都一样的。
1.
依次安装程序包、中文语言包
[root@mail ~]# tar jxf squirrelmail-1.4.13.tar.bz2 -C /usr/local/apache2/htdocs/
[root@mail ~]# cd /usr/local/apache2/htdocs/
[root@mail htdocs]# mv squirrelmail-1.4.13 webmail
[root@mail htdocs]# cd webmail/
[root@mail webmail]# tar jxf ~/zh_CN-1.4.13-20071220.tar.bz2
2.
创建调整数据目录和邮件附件目录
[root@mail webmail]# mkdir -p attach data
[root@mail webmail]# chown -R daemon:daemon attach/ data/
[root@mail webmail]# chmod 730 attach/
说明:咱们创建了两个目录一个是数据目录(data),一个是附件目录(attach).并且把属主属组改为daemon.
3.
建立config.php配置文件
[root@mail webmail]# cp config/config_default.php config/config.php
[root@mail webmail]# cat config/config.php
…
…
$domain = 'zpp.com'; //
第118行
$smtpServerAddress = 'localhost'; //
设置发信服务器地址 第146行
$smtpPort = 25; //
设置发信服务器的端口 第151行
$imapPort = 143; //
设置收信服务器的端口 第210行
$imap_server_type = 'dovecot'; //
设置收信服务器地址 第231行
$data_dir = '/usr/local/apache2/htdocs/webmail/data'; //
第487行
$attachment_dir = '/usr/local/apache2/htdocs/webmail/attach/'; //
第505行
$squirrelmail_default_language = 'zh_CN'; //
设置语言 第1000行
$default_charset = 'zh_CN.UTF-8'; //
设置编码格式 第1015行
… …
说明:上面配置项data_dir和attachment_dir分别设置的是数据目录和附件目录,咱们刚刚不是在
/usr/local/apache2/htdocs/webmail/
目录下创建了两个目录吗。
4.
重新启动httpd服务,在IE中登录SquirrelMail系统
[root@mail ~]# /usr/local/apache2/bin/apachel restart
在IE中键入地址:http://mail.zpp.com/webmail,系统会自动跳转为SquirrelMail登录界面(http://mail.zpp.com/webmail/src/login.php)如下图:
界面也不咋样啊!咱们用邮件用户zpp001试试看!
好上来了,我们可以看到登录进来的界面还不错,如图:
好了!里面的功能咱们就不看了,很简单。接下来我们来看一下如何实现邮件群发吧!
第二部分:设置用户别名和邮件群组
用户别名主要可以用来实现邮件群发功能,它依赖aliases机制,这一点和上次咱们说的Sendmail一样一样的。就不多说了,下面是实现的步骤:
1.
设置postfix查询表
[root@mail ~]# cat /etc/postfix/main.cf
... ...
alias_maps = hash:/etc/aliases
[root@mail ~]# postfix reload
说明:修改main.cf配置文件,我们使用“/etc/aliases”文件的hash数据作为查询表。改完了可别忘了重新加载啊!不然后面就会纳闷!
2.
设置邮件别名实现群发功能
[root@mail ~]# tail -5 /etc/aliases
…
…
zpp-group: zpp001,zpp002,zpp003,zpp004
[root@mail ~]#newaliases
说明:咱们创建一个名叫zpp-group的别名,让它对应zpp001,zpp002,zpp003,zpp004这四位用户,这样的话我们给zpp-group发一封邮件zpp001-4都会收到。注意设置完后要用newaliases命令使/etc/aliases文件(配置文件)生成/etc/aliases.db文件(数据库文件)
OK
!现在咱们用master用户给zpp-group发一份通知测试一下吧,如图:
我们用zpp001登录上去看能否收到通知,如图:
可以看到用户zpp001已成功收到了master给我们发来的通知
接下来,咱们来看一下邮件大小和邮箱空间是如何限制的
第三部分:设置邮件大小、邮箱空间的限制
为啥要限制邮箱大小呢?说的直白点就是防止用户把邮件服务器当成FTP来用,呵呵!其实也不能单纯的这样说。另外一个原因是服务器的磁盘空间毕竟有限。所以我们要进行一定的限制。下面是具体的步骤:
1.
限制用户可发送的邮件大小
[root@mail ~]# cat /etc/postfix/main.cf
... ...
message_size_limit = 20971520
[root@mail ~]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
说明:在/etc/postfix/main.cf中添加message_size_limt字段不但对系统用户生效,对虚拟用户也一样可以生效。咱们设置
message_size_limit = 20971520
目的是将用户可发送的邮件大小限制为20MB。
用户可发送的邮件大小限制就是这么简单,来测试一下吧!
测试我就用OE吧,因为前面装的SquirrelMail附件太大传不上去,看不到发送时的效果。
我们给用户zpp004发送一封25M的邮件,如图:
下面就是反馈信息
可以看见它提示我们“由于超过了服务器的限制… …”的错信息,也可以到postfix服务器的日志文件中去查看。
2.
限制用户的邮箱空间大小
有两个配置参数可以限制用户的邮箱大小,如下:
mailbox_size_limit
这个只能对系统用户生效,默认值是50MB
virtual_mailbox_limit
针对虚拟用户生效,默认值也是50MB
还有一种方法就是磁盘配额(quota), 邮箱的空间大小限制因为不方便截图,我这就不截图了哈!