sendmail下设定邮箱大小
创始人
2024-07-20 08:31:40
0

  目前,在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. 安装

  1.   # ./Build install  

  (用超级用户身份安装)

  3. 生成配置文件

  1.   # cd ../cf/domain  
  2.  
  3.   # vi generic.m4 

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

  FEATURE('access_db','dbm /etc/mail/access')dnl

  FEATURE('blacklist_ recipients')dnl

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

  1.   # cd ../cf  
  2.  
  3.   # m4 ../m4/cf.m4 ./generic-solaris2.mc > ./sendmail.cf  
  4.  
  5.   # cp ./sendmail.cf /etc/mail/  
  6.  

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

  1.   # cd /etc/mail  
  2.  
  3.   # makemap dbm access < /dev/null  
  4.  
  5.   # vi local-host-names  
  6.  

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

  5. 启动Sendmail

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

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

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

  1.   # vi /etc/mail/limit_mailbox.sh  
  2.  
  3.   # chmod u+x /etc/mail/limit_mailbox.sh  
  4.  
  5.   # crontab -e  
  6.  

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

  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 源代码

 

  1.  #!/usr/bin/ksh  
  2.  
  3.   # search the mailbox larger than MAXSIZE , then set this mailbox full and reject new mails  
  4.  
  5.   error() {  
  6.  
  7.   echo " "  
  8.  
  9.   exit 1  
  10.  
  11.   }  
  12.  

  BIN=/usr/bin

  MAIL=/etc/mail

  #Sendmail 参数文件所在的目录

  MAILDIR=/var/mail

  #存放邮箱文件的目录

  ACCESS=access.db

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

  SUBACCESS=access.sub

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

 

  1.  if [ -lt 1 ]; then  
  2.  
  3.   error "Must set the MAX mailbox size with the command!"  
  4.  
  5.   fi  
  6.  
  7.   if [ -le 0 ] ; then  
  8.  
  9.   error " Mailbox Size < 0, Failed"  
  10.  
  11.   fi  
  12.  
  13.   ((MAXSIZE=*1024*1024))  
  14.  
  15.   if [ -f / ]; then  
  16.  
  17.   /cat / > / ' '  
  18.  
  19.   error "piping /sintos/,  
  20.  
  21.   Failed"  
  22.  
  23.   else  
  24.  
  25.   > /' 'error "clearing /, Failed"  
  26.  
  27.   fi  
  28.  
  29.   cd ' 'error "entering Failed"  
  30.  
  31.   for box in '/find .  
  32.  
  33.   ! -user root -size +""c -type f -print'; do  
  34.  
  35.   case in  
  36.  
  37.   .|..|./.*.pop)  
  38.  
  39.   ;;  
  40.  
  41.   *)  
  42.  
  43.   mailuser=  
  44.  
  45.   echo "To:@  
  46.  
  47.   ERROR:550 's Mailbox is full " >> /  
  48.  
  49.   ;;  
  50.  
  51.   esac  
  52.  
  53.   done  
  54.  
  55.   cd || error " entering Failed"  
  56.  
  57.   /usr/sbin/makemap dbm access  
  58.  
  59.   < ./ || error "makemaping access Failed"  
  60.  
  61.   exit 0'  
  62.  

  通过以上一系列的命令和方法,就可以设定sendmail 邮箱的大小

【编辑推荐】

  1.  Sendmail邮件系统的安全解决全方案
  2. Sendmail邮件系统的安全解决全方案
  3. Coremail邮件系统入选广东Linux产品推荐目录
  4. Sendmail 配置下载及安装
  5. 解决Sendmail 配置的两种方案
  6. Sendmail 安装升级实现方式
  7. 在php sendmail Windows下配置的具体实现
  8. Linux系统sendmail配置安装

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...