• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Sendmail中实现用户磁盘配额的实用方法
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
Sendmail中实现用户磁盘配额的实用方法
软件发布 Sendmail中实现用户磁盘配额的实用方法
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 网络技术 >> 邮件服务器架设与维护 >> Sendmail中实现用户磁盘配额的实用方法

Sendmail中实现用户磁盘配额的实用方法

添加时间: 2007-10-4 14:49:33  作者: 邮件服务器教程  阅读次数:19   来源: http://www.d9soft.com

       

  目前,在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软件包已下载到当前目录后即可进行编译,操作步骤如下。

  $ gzip -dc sendmail.8.11.3.tar.gz tar -xf - (Gzip 是一个压缩/解压缩的工具,相当于 Windows平台上的WinZip,在网上能很容易地找到并下载)
  $ cd 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 " $1 "
 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 [ $1 -le 0 ] ; then
error " Mailbox Size < 0, Failed"
fi
((MAXSIZE=$1*1024*1024))
if [ -f $MAIL/$SUBACCESS ]; then
  $BIN/cat $MAIL/$SUBACCESS > $MAIL/$ACCESS ' '
  error "piping $MAIL/$SUBACCESS into $MAIL/$ACCESS, Failed"
else
  > $MAIL/$ACCESS' 'error "clearing $MAIL/$ACCESS, Failed"
fi
cd $MAILDIR' 'error "entering $MAILDIR Failed"
for box in '$BIN/find .
! -user root -size +"$MAXSIZE"c -type f -print'; do
 case $box in
  ..../.*.pop)
   ;;
  *)
   mailuser=${box#./}
   echo "To:$mailuser@
ERROR:550 $mailuser's Mailbox is full " >> $MAIL/$ACCESS
   ;;
 esac
done
cd $MAIL error " entering $MAIL Failed"
/usr/sbin/makemap dbm access
< ./$ACCESS error "makemaping access Failed"
exit 0'

 

上下文章:

 

上一篇文章: 基于QMail的完整WEBMAIL解决方案安装详解(2) 下一篇文章: 小型企业的Sendmail邮件服务器应用实例

相关文章:

  • 飞速在线看视频 傲盾加速帮你实现速度感受
  • vista隐蔽的注册表垃圾清理方法
  • 用端口碰撞技术实现服务器远程管理
  • Sendmail邮件服务器快速指(五)
  • Sendmail邮件服务器快速指(四)

相关软件:

  • SendTo+批处理实用小工具 V1.0 绿色版
  • 我的地盘(PrivateZone)磁盘加密软件 V1.20
  • 学习方法宝典 2006 新春贺年版
  • 宽盈自助建站系统.net多用户 1.0
  • 技术人员实用工具合集 06/03/21 [机必备工具]
  • CleanCenter(磁盘清理工具) v1.36.01 绿色汉化版

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

网络技术分类导航

  • 局域网专栏
  • 病毒快报
  • 网络安全
  • 组网教程
  • WEB服务器架设与维护
  • FTP服务器架设与维护
  • DNS服务器架设与维护
  • 邮件服务器架设与维护

本类经典文章推荐

  • 如何作邮件交换记录
  • 用Windows Server 2003架设小型邮...
  • 用CMailServer打造邮件服务器
  • Server 2003中为SNMP服务配置网络...
  • 你的email服务器准备好应对账号搜...
  • 个人SMTP服务器的配置
  • 教你如何使用Procmail 过滤mail病...
  • Sendmail邮件服务器快速指(二)
  • 教你用QMailadmin达出QMail邮件账...
  • 教你三分钟打造反垃圾邮件服务器

邮件服务器架设与维护阅读排行

  • 企业Sendmail邮件服务器的创建(4)
  • 利用twig架设WebMail系统(2)
  • 配置你的第一台e-mail服务器(1)
  • 创建企业级Internet邮件服务器(2)
  • 使用Exchange构筑小型局域网电子邮...
  • 配置你的第一台e-mail服务器
  • 创建企业级Internet邮件服务器
  • 建立邮件服务器:概述(4)
  • 利用twig架设WebMail系统(1)
  • 在Fedora上建立自己的邮件服务器

网络技术阅读总排行

  • 网络解惑:找回消失的本地连接
  • 教你如何通过路由器来控制上网
  • 网卡故障排除技巧详解
  • FlashFTP教程
  • 网上邻居十大经典应用技巧
  • 如何有效建立Win2000 VPN服务器
  • 经济实惠:组建P2P电影服务器
  • 查找局域网络中的故障技巧
  • 南阳信息港被黑案告破!
  • 小区宽带主要常见故障解决办法

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有