回精華區
作者itoc.bbs@cpu.tfcis.org (核心動力) 看板: plan
標題拒收站外信件
時間動力核心 (2006/04/06 Thu 12:33:53) Updated: 2006/05/17
※ 引述《guessi.bbs@bbs.wretch.cc》之銘言:
> 記得以前有這function
> 請問要怎麼改 ? 讓使用者自訂是否收取站外信件
> 廣告信擋不完 但有些人只是收站內信 不想收站外信件
> 請問該怎麼做修改 ? (希望能做成喜好設定)

: ufo.h

- #define UFO_NOUSE20     BFLAG(20)
+ #define UFO_NOINCOME    BFLAG(20)

: ufo.h

- #define NUMUFOS_USER    20      /* 一般使用者 可以用前 20 個 ufo */
+ #define NUMUFOS_USER    21      /* 一般使用者 可以用前 21 個 ufo */

- #define STR_UFO         "-mpsnemPBQFANbwtSH-J----CHA"
+ #define STR_UFO         "-mpsnemPBQFANbwtSH-JM---CHA"

: ufo.h

- "保留",
+ "拒收站外信件    (不收/要收)",    /* UFO_NOINCOME */

: bmtad.c:is_rcpt()

    if (!str_cmp(str, ".bbs"))
    {
      if (len <= IDLEN + 4)
      {
+       ACCT acct;

        *str = '\0';
        str_lower(rcpt, rcpt);
        sprintf(fpath, "usr/%c/%s/@", *rcpt, rcpt);
+       if ((len = acct_fetch(rcpt, &acct)) >= 0)
+       {
+         close(len);
+         if (acct.ufo & UFO_NOINCOME)
+           return -1;
+       }
        if (dashd(fpath))
        {
          *letter = 1;
          return 0;
        }
      }
    }

: bbsmail.c:mail2bbs()

  int fd;
  FILE *fp;
+ ACCT acct;

+ usr_fpath(folder, userid, FN_ACCT);
+ if ((fd = open(folder, O_RDONLY)) >= 0)
+ {
+   read(fd, &acct, sizeof(ACCT));
+   close(fd);
+   if (acct.ufo & UFO_NOINCOME)
+   {
+     sprintf(buf, "BBS user <%s> no income mail", userid);
+     mailog(buf);
+     return EX_NOUSER;
+   }
+ }

--
=[:摃�◣�:Origin ]|[  Ocpu.tfcis.org  ]|[�搟說:]=
=[:摃�╱�:Author ]|[  pc512-1.ee.nctu.edu.tw  ]|[�:]=
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻