回到上一層


    mailpost 的信件只可送到

                           bbs@fhl.ee.nctu.edu.tw
    或                     bbsuser@fhl.ee.nctu.edu.tw

    以下是原來相關的 README 檔:

--------------------------------------------------------------------------
   3-4. 利用 email post 文章
            首先設定 BBS 的 .forward, 使收到的 email post 文章轉向給
        mailpost, .forward 檔格式如下: (包括前後的引號!)

        "| /home/bbs/innd/mailpost /home/bbs"

        利用 email post 可接受一般 8-bits 的信件, 也可以接受 uuencode
        過的信件, mailpost 程式遇到 uuencode 格式的信件會自動將文章
        decode 之後再 parse 信件格式.

            信件格式必須包括四個項目, 格式及說明如下:

        #name: guest            使用者帳號, 必須事先註冊過才行.
        #password: guestpwd     使用者密碼, 程式會檢查密碼是否正確.
        #board: test            討論區英文名稱, 文章會放入該討論區內.
        #title: 測試文章標題    文章標題, 可用 8-bits 中文標題.

        如果檢查 password 無誤, 就會將文章直接放入 boards 中, 值得一提
        的是在此並不檢查 user 在該討論區是否有 post 的權力. 因為 email
        post 可查出使用者的帳號, 基於網路互信互利的原則, 不多做限制,
        如果有 user 濫用此權力, 可再考慮加以限制.

            此外, 為了避免干擾其它 news 使用者閱讀文章, 利用 email post
        的文章標題將不允許使用 ansi 控制碼, 所有 ESC (27) code 都會自動
        轉換為 "^[" 兩個字元.

            如果要限制某些特定的使用者不能 email post, 可將這些使用者的
        email address 放在 ~bbs/innd/email.deny 檔案內, 此 user 的 email
        將不被接受, 並 post 到 junk board 內.
--------------------------------------------------------------------------

    /home/bbs/innd/mailpost 是個 perl 程式,而我們的 perl interpreter
在 /usr/bin/perl,因此要將第一行改成:

#!/usr/bin/perl

另外,uudecode 亦同,line 71 改成:

    open( FN, "| /usr/bin/uudecode" );

/home/bbs/innd/mailpost 將呼叫 /home/bbs/innd/bbspost 作最後處理.
由於怕 bbspost 找不到 .PASSWDS 故改 bbspost.c line 137:

    if( (fh = open( "/home/bbs/.PASSWDS", O_RDWR )) == -1 ) {

最後,也是最難的吧,就是 compile bbspost.c 了.我寫了一個 Makefile,
須做的動作如下:

先 copy bbs.h 然後改了 #include  -> #include 

yacc timefmt.y
gcc -O2 -I../.. -c parsedate.c
gcc -O2 -I../.. -DDONT_HAVE_TM_GMTOFF -c -o timefmt.o y.tab.c
gcc -O2 -o parsedate parsedate.o timefmt.o
gcc -O2 -I../.. -c bbspost.c
gcc -O2 -I../.. -o bbspost bbspost.o ../../record.o

對了,innd 要放在 /home/bbsroot/src/innd ,以上會用到 /home/bbsroot/src/
裡的 record.o. Compile 時用 -O2 來 optimize 可使程式跑得更快.

    您可能會問為何用 -O2 而不用 -O, -O1, 又為何用 -DDONT_HAVE_TM_GMTOFF
等等,我只能說是靠經驗啦. :)


回到上一層