荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (Welcome to InstallBBS,Linux!), 信区: InstallBBS
标  题: [转载] [转录]bbsmailq, 一个简单的挡广告信方法(转寄)
发信站: 荔园晨风BBS站 (Wed Dec 19 23:15:51 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: Czz.bbs@bbs.feeling.dhs.org (Moulin Rouge), 信区: BBSMan_Dev
标  题: [转载] [转录]bbsmailq, 一个简单的挡广告信方法
发信站: 温馨小屋 (Mon Dec 17 16:49:53 2001)
转信站: SMTH!thunews.dhs.org!news.feeling.dhs.org!Feeling

※ 本文转录自 [Plan] 看板

作者: Jerr (Whisky on Rocks) 看板: Plan
标题: bbsmailq, 一个简单的挡广告信方法
时间: 23:04:40 民国九十年十二月十六日 星期日


    -- bbsmailq 广告信自动筛检程式 (2001/12/16) --

    */ 前言 /*

        这个方法姑且称作 bbsmailq 好了 :)

        此方法仅配合 sendmail + bbsmail 使用,尚未在 postfix 与其他 smtp
        daemon 上测试。如果是使用 Maple 3 的 bmtad 来负责 BBS user 的收
        信,很抱歉此方法是不适用的。

    */ 原理 /*

        因为当下寄发给 BBS user 的广告信已经具备了短时间内大量寄信给许多
         user的特徵,因此依据这个特徵我们可以先将送进来的信 queue 住,等
        待一段时间後去检查这段时间送进来的信与该使用者收到信的比例,超过
        一个可忍受的范围则可视为广告信。

    */ 程式列表 */

        以下的程式是以 bash(*) 为环境写成,由於我的 shell script 新学乍用
        或许有不好的地方,欢迎来信讨论指正。

        (*)注:由於我所使用的 RedHat Linux 是将 sh 硬连结至 bash 的,所以
        程式开头都是写成 #!/bin/sh。以下是我的 bash 版本资讯:

        GNU bash, version 2.05.9(1)-release (i386-redhat-linux-gnu)
        Copyright 2000 Free Software Foundation, Inc.

        程式部份:
          dmailq.sh    -- 负责判断信件寄送比例并寄发信件给 BBS user。
          func.sh      -- mailq.sh & dmailq.sh 共用的函式定义於此。
          mailq.sh     -- 是一只 mailer,负责 queue 住外来信件并分类。
          sendlog.sh   -- 将纪录档寄给指定的 e-mail 後删除旧的 log。

        设定档:
          smtp.acl     -- 设定来信的 SMTP Server 黑/白名单。

        纪录档:
          dmailq.log   -- 执行 dmailq.sh 之後产生的纪录档。

        说明文件:
          README       -- 你正在阅读的这份文件。

        以後或许还会根据网友的建议及指正修改这些程式,届时请莅网址:
        http://www.csie.nctu.edu.tw/~gjchen/bbsmailq.html 下载更新。

    */ 步骤 /*

        1) 在 BBS home 目录下建立一个暂存目录,在以下的程式里我预设的目录
           是 /home/bbs/spool,可依据需要做更改。

        2) 把取得的 bbsmailq.tgz 解开置於 spool 下,与上节程式列表比对,并
           且 将 *.sh chmod 成可执行。

        3) 修改 sendmail.cf,找到 Ruleset 0 原本可能如下的设定:

R$+.bbs < @ $=w . >     $#bbsmail $: $1         bbs mail gateway

           改成

R$+.bbs < @ $=w . >     $#bbsmailq $: $1                bbs mail gateway

           然後新增一个 Mbbsmailq 的设定。找到 Mbbsmail 的设定可能如下:

Mbbsmail,      P=/home/bbs/bin/bbsmail, F=lsSDFMhPu, U=bbs, S=10, R=20/40,
               A=bbsmail $u

           增加一个 Mbbsmailq:

Mbbsmailq,      P=/home/bbs/spool/mailq.sh, F=lsSDFMhPu, U=bbs, S=10, R=20/40,
                A=mailq.sh $u ${client_addr}

           重跑 sendmail。

        4) 在 bbs 的 crontable 里增加一行定时执行 dmailq.sh 的设定:

           0-59/3 * * * * spool/dmailq.sh       # 3 分钟执行一次 dmailq.sh

           如果你觉得效果不好可以试著放大执行的间隔时间。
           如果你要定时检查清理 dmailq.log 可以在 crontable 中加入定
           时执行 sendlog.sh 的设定:

           0 0 * * * spool/sendlog.sh sysadm@localhost gjchen@csie.nctu.edu.tw

           sendlog.sh 会将 dmailq.log 寄给 sysadm 和 gjchen@csie.nctu.edu.tw
           之後将 dmailq.sh 删除。

        5) dmailq.sh 的执行会简单的 log 在 dmailq.log 里,其中 UAVG 的比例
           若大於等於 dmailq.sh 的 MAXUAVG,则不会呼叫 bbsmail 将信件送给
            bbs user。如果你将 dmailq.sh 中的 AUTO_ADD_BLACK 设为 1 (预设)
           则程式会自动将 UAVG >= MAXUAVG 的 SMTP Server 丢入黑名单。

        6) smtp.acl 目前简单的提供了黑/白名单的机制,写法在 smtp.acl 中有
           说明及范例。当 mailq.sh 判读SMTP Server在黑名单则不收此信件,当
           SMTP Server 在白名单之列则直接呼叫 bbsmail 寄送邮件给 BBS user。

        7) 程式臭虫回报及建议,请来信作者信箱 gjchen@csie.nctu.edu.tw。

    */ 後记 /*

        由於我手边尚无使用 postfix 与 FireBird BBS 的机器可供测试,若有热心
        的网友将此法用在 postfix 与 FB BBS 上请将不同的设定方法寄给我,谢谢。

    */ 其他 /*

        附上开发环境的资料:

        Linux 2.4.12 ( Redhat Linux 7.0 )
        Sendmail 8.11.6
        GNU bash, version 2.05.9(1)
        Maple BBS 3.02
        Joe's Own Editor v2.9.6


--
        陈俊哲(Gin-Jerr Chen), gjchen@csie.nctu.edu.tw, 新竹交大资工, TWN。
--
                                                  +------------------------+
                                                  |  Gin-Jerr Chen,陈俊哲  |
                                                  |  gjchen@ournet.idv.tw  |
                                                  +---------== OMT,2001 ==-+
--
      立 ﹋  )作者 Jerr 的第 5157 篇文章
          ﹋   来自 bbs.ournet.idv.tw
    ▂▂▂▂︺ 凄美灯塔 bbs.ournet.idv.tw
--
※ 转载:.温馨小屋 bbs.feeling.dhs.org.[FROM: feeling.dhs.org]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店