linux怎么设置邮箱大小,Linux sendmail 中限定用户邮箱大小的实用法

目前,在Linux/Unix平台

上,Sendmail因成为缺省安装的邮件服务器而得到非常广泛的应用。但是Sendmail本身并不具有限定 用户邮箱大小的功能,所以,如果某些用户长时间不取信或设定了保留邮件副本,其信件将在服务器上不断堆积,以致邮箱越来越大,占用大量的硬盘空间,很多网

络管理员对此都很有意见。这里介绍一种简单实用的方法,通过它, 我们可以很方便灵活地对用户邮箱的大小进行设定

目前,在

Linux/Unix平台上,Sendmail因成为缺省安装的邮件服务器而得到非常广泛的应用。但是Sendmail本身并不具有限定用户邮箱大小的功

能,所以,如果某些用户长时间不取信或设定了保留邮件副本,其信件将在服务器上不断堆积,以致邮箱越来越大,占用大量的硬盘空间,很多网络管理员对此都很

有意见。这里介绍一种简单实用的方法,通过它, 我们可以很方便灵活地对用户邮箱的大小进行设定。

一、基本思路

----

先设定一个用户邮箱大小的门限值;然后定期启动一个进程,检查每一个用户邮箱文件的大小,将所有超过这一限值的邮箱文件名临时写进某一特定的文件中;

再读取该文件,将它写进Sendmail 的黑名单(blacklist_recipients)

中,从而使邮件服务器拒收该用户的新邮件,直到下次检查时该邮箱大小已小于设定的门限值为止。

二、运行环境

---- 我们以Solaris

2.7操作系统为例进行说明,其他Unix(或Linux)系统可参照来做。

---- 本文以Sendmail

8.11.3为例,若无该版本的Sendmail运行软件,可到http://freesoft.cei.gov.cn或

http://www.sendmail.org站点下载。

三、具体操作

---- 1. 下载编译

----

在Sendmail软件包已下载到当前目录后即可进行编译,操作步骤如下。

---- -dc sendmail.8.11.3.tar.gz | tar -xf -

(Gzip 是一个压缩/解压缩的工具,相当于 Windows平台上的WinZip,在网上能很容易地找到并下载)

---- sendmail-8.11.3/sendmail

---- /Build

---- (编译Sendmail )

---- 2. 安装

---- # ./Build install

---- (用超级用户身份安装)

---- 3. 生成配置文件

---- # cd ../cf/domain

---- # vi generic.m4

---- 此时,在文件的末尾增加如下两行内容。

---- FEATURE('access_db','dbm

/etc/mail/access')dnl

---- FEATURE('blacklist_

recipients')dnl

---- 然后,我们可以按着输入以下内容。

---- # cd ../cf

---- # m4 ../m4/cf.m4 ./generic-solaris2.mc

> ./sendmail.cf

---- # cp ./sendmail.cf /etc/mail/

---- 4.生成 access 文件及邮件服务器名称的参数文件

---- # cd /etc/mail

---- # makemap dbm access <

/dev/null

---- # vi local-host-names

----

(该文件是一个文本文件,内容为本地邮件服务器的域名和别名,它们之间要用回车分隔。详见Readme文件的有关介绍)

---- 5. 启动Sendmail

---- # /usr/lib/sendmail -bd -q30m

---- 6. 编缉限制邮箱大小的程序

----

用sh命令编缉一个限制邮箱大小的程序,然后用操作系统的定时执行功能crontab设定其执行的频率,内容如下。

---- # vi /etc/mail/limit_mailbox.sh

---- (内容见附录)

---- # chmod u+x

/etc/mail/limit_mailbox.sh

---- # crontab -e

---- 接着,我们可以输入以下内容。

---- 0 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

* * * /etc/mail/limit_mailbox.sh 10

----

它表示在每天6:00~20:00间,每隔1小时启动一次,检查邮箱大小的sh命令。用户也可根据实际情况进行调整。“10”表示邮箱大小的门限值为10MB。

四、附录limit_mailbox.sh 源代码

---- #!/usr/bin/kshBT4

---- # search the mailbox larger than MAXSIZE ,

then set this mailbox full and reject new mails

error() {

echo " "

exit 1

}

BIN=/usr/bin

MAIL=/etc/mail

#Sendmail 参数文件所在的目录

MAILDIR=/var/mail

#存放邮箱文件的目录

ACCESS=access.db思科学习视频资料下载中心

#用于临时存放超过门限值的邮箱名

SUBACCESS=access.sub

#用于存放额外的收、转发限制规则

if [ -lt 1 ]; then

error "Must set the MAX mailbox size with the

command!"

fi

if [ -le 0 ] ; then思科路由器配置

error " Mailbox Size < 0, Failed"

fi

((MAXSIZE=*1024*1024))

if [ -f / ]; then

/cat / > / ' '

error "piping /sintos/,

Failed"

else

> /' 'error "clearing /, Failed"

fi

cd ' 'error "entering Failed"

for box in '/find .

! -user root -size +""c -type f -print';

do

case in

.|..|./.*.pop)

;;

*)

mailuser=

echo "To:@

ERROR:550 's Mailbox is full " >>

/

;;

esac

cd || error " entering Failed"

/usr/sbin/makemap dbm access

< ./ || error "makemaping access

Failed"

exit 0'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值