知识大全 sendmail中一种限定用户邮箱大小的实用方法

Posted

篇首语:孤独如影随形,我们不能杀死他,只能与他和解。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 sendmail中一种限定用户邮箱大小的实用方法相关的知识,希望对你有一定的参考价值。

  目前 在Linux/Unix平台上 Sendmail因成为缺省安装的邮件服务器而得到非常广泛的应用 但是Sendmail本身并不具有限定用户邮箱大小的功能 所以 如果某些用户长时间不取信或设定了保留邮件副本 其信件将在服务器上不断堆积 以致邮箱越来越大 占用大量的硬盘空间 很多网络管理员对此都很有意见 这里介绍一种简单实用的方法 通过它 我们可以很方便灵活地对用户邮箱的大小进行设定     一 基本思路      先设定一个用户邮箱大小的门限值;然后定期启动一个进程 检查每一个用户邮箱文件的大小 将所有超过这一限值的邮箱文件名临时写进某一特定的文件中; 再读取该文件 将它写进Sendmail 的黑名单(blacklist_recipients) 中 从而使邮件服务器拒收该用户的新邮件 直到下次检查时该邮箱大小已小于设定的门限值为止     二 运行环境      我们以Solaris 操作系统为例进行说明 其他Unix(或Linux)系统可参照来做      本文以Sendmail 为例 若无该版本的Sendmail运行软件 可到或 站点下载     三 具体操作      . 下载编译    在Sendmail软件包已下载到当前目录后即可进行编译 操作步骤如下    $ gzip dc sendmail tar gz | tar xf (Gzip 是一个压缩/解压缩的工具 相当于 Windows平台上的WinZip 在网上能很容易地找到并下载)    $ cd sendmail /sendmail    $ /Build    (编译Sendmail )      . 安装    # /Build install    (用超级用户身份安装)      . 生成配置文件    # cd /cf/domain    # vi generic m    此时 在文件的末尾增加如下两行内容    FEATURE( access_db dbm /etc/mail/access )dnl    FEATURE( blacklist_ recipients )dnl    然后 我们可以按著输入以下内容    # cd /cf    # m /m /cf m /generic solaris mc > /sendmail cf    # cp /sendmail cf /etc/mail/      .生成 access 文件及邮件服务器名称的参数文件    # cd /etc/mail    # makemap dbm access < /dev/null    # vi local host names    (该文件是一个文本文件 内容为本地邮件服务器的域名和别名 它们之间要用回车分隔 详见Readme文件的有关介绍)      . 启动Sendmail    # /usr/lib/sendmail bd q m      . 编缉限制邮箱大小的程序    用sh命令编缉一个限制邮箱大小的程序 然后用操作系统的定时执行功能crontab设定其执行的频率 内容如下    # vi /etc/mail/limit_mailbox sh    (内容见附录)    # chmod u+x /etc/mail/limit_mailbox sh    # crontab e      接着 我们可以输入以下内容      * * * /etc/mail/limit_mailbox sh      它表示在每天 : ~ : 间 每隔 小时启动一次 检查邮箱大小的sh命令 用户也可根据实际情况进行调整 表示邮箱大小的门限值为 MB     四 附录limit_mailbox sh 源代码      #!/usr/bin/ksh    # search the mailbox larger than MAXSIZE then set this mailbox full and reject new mails     error()   echo $   exit      BIN=/usr/bin  MAIL=/etc/mail   #Sendmail 参数文件所在的目录  MAILDIR=/var/mail   #存放邮箱文件的目录  ACCESS=access db   #用于临时存放超过门限值的邮箱名  SUBACCESS=access sub   #用于存放额外的收 转发限制规则  if [ $# lt ]; then  error Must set the MAX mailbox size with the mand!   fi  if [ $ le ] ; 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: $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      cha138/Article/program/Oracle/201311/18192

相关参考

知识大全 php验证用户输入的邮箱有效性和正确性

  functionvalidate_email($email)  $exp="^[az]+([_][az]+)*@([az]+([_][az]+))+$";  if(eregi($exp$email

知识大全 改善用户体验制作实用密码强度提示

功能说明在用户注册或更改密码时根据用户输入进行检测并返回结果能有效地提醒用户提高帐号的安全性    类似效果中的修改密码功能    运行代码框  简单预览  <><head>&

知识大全 如何使sendmail监听在其他端口

  一些内部服务器可能需要定义sendmail监听在其他端口比如如何做到?  可以在mc文件里面定义  define(`SMTP_MAILER_ARGS`TCP$h)  再生成sendmailcf  

知识大全 为什么当系统启动到Sendmail时会暂停

为什么当系统启动到Sendmail时会暂停  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这是一

知识大全 Linux 网管 123 --- 升级 Linux 及其他应用软体 -9.Sendmail

Linux网管123---升级Linux及其他应用软体-9.Sendmail  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让

知识大全 oracle笔记之简单查询、限定查询和排序

  别名  oracle别名如果别名包含空格特殊字符(如#$)或需区分大小写(Name)需要用双引号把别名引起来  selectenameName  sal*AnnualSalary  fromemp

知识大全 sendmail出现MX list for hostname points back to ho

sendmail出现MXlistforhostnamepointsbacktoho  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内

知识大全 如何填写电子邮件的有效地址

如何填写电子邮件的有效地址电子邮件的地址是用户名@域名比如你使用QQ邮箱,地址就是QQ号码@QQ.如果你使用的163邮箱地址就是用户名@163.电子邮件有效地址怎么写?比如8989237@qq.,你可

知识大全 在确定不了是发明专利还是属于实用新型专利怎么办?

在确定不了是发明专利还是属于实用新型专利怎么办?可能由于个人知识面的侷限性和专业性没法判断,有个建议:可以委托专业的代理机构来帮你,像一些成立了10多年的代理机构中一,必定是有很多资深专业的专利代理人

斑晶Phenocryst

火成岩中一种嵌入基质中,且比基质晶体大得多的晶体。一般说来具有这种大的且令人注目的晶体的岩石是斑岩。斑晶大小变化很大;在细粒岩石中斑晶可能只有1—2毫米,而在粗粒岩石中可达10厘米之长。