首页 新闻 搜索 短信 分类 聊天 导航

新浪首页 > 文化教育 > 网络安全 > 正文

sendmail中限定用户邮箱大小的实用法

http://www.sina.com.cn 2001/10/26 16:47  王府培训

  来源:LinuxAid

  目前,在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/ksh
  ---- # 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
  done
  cd || error " entering Failed"
  /usr/sbin/makemap dbm access
  < ./ || error "makemaping access Failed"
  exit 0'


   短信节日传情奖中奖:数码相机、CD/VCD……大奖总值5万元!


发表评论】 【读书沙龙】 【短信和E-Mail推荐】 【关闭窗口

 相关链接
Sendmail与IBM共推Linux邮件系统 (2000/11/09 10:50)
21CN免费邮箱容量调整到5兆 (2001/10/18 16:04)
IDC预测:世界电子邮箱利用率将激增 (2001/09/20 16:26)
IDC:2005年全球电子邮箱数将达12亿个 (2001/09/18 16:33)
邮箱收费渐成趋势 网民看好服务升级 (2001/09/11 17:28)

新 闻 查 询

订实用短信,获赠超大VIP邮箱、个人主页、网上相册!


分 类 信 息
投真实一票 获精彩大奖!
:首医大反射培训招
   国际财务会计证书
   王府装饰培训取证
   莱茵春天德语学校
   成软件人才上GNIIT
   北外培训中心招生
:圣诞节花给最爱
   进口车其实也不贵
   聆听春之先赞歌
   做女人"挺"好
:颐和园=谊和缘
   新网络服务器平让
:最新飞行器广告
   超级星期天招商
:全新人才招聘信息
   城市先锋网友会
:省内游优惠线路
   蔡屋围发展大厦租
:“郑明明” 送大礼
   千禧平安夜狂欢
:多功能车热销
   痘为何与年轻结缘
:好大夫美牙器
   超乎所值的性价比
分类信息刊登热线>>




文化教育意见反馈留言板电话:010-62630930-5178 欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网

本网站由北京信息港提供网络支持