捣鼓了几个通宵,终于吧mail2bbs搞定:)
中间的曲折和大家分享一下.
发现其实很多东西大牛们早就写过了~只要认真找一下就可以解决问题了~
感谢 atppp stid Czz flyriver 等等大牛
环境 rhadv3 + sendmail.8.13.3.tar.gz + smth_bbs 1.10 cvs
1 安装sendmail.8.13.3.tar.gz,简略写命令
tar xvfz sendmail.8.11.4.tar.gz
cd sendmail-8.11.4
cd sendmail
./Build
cd /src/sendmail-8.11.4/cf/cf/
cp ./generic-linux.mc ./sendmail.mc
./Build sendmail.cf
cd /src/sendmail-8.11.4/sendmail
./Build install
生成配置文件:
vi /etc/mail/access 这里面写你允许转发的ip
makemap hash access.db < access
vi /etc/mail/local-host-names 你使用的域名~需要mx的哦~
touch /etc/mail/aliases
newaliases
sendmail搞定~~~~~
2 配置sendmail.cf.一共需要四处修改
Mlocal, P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL,
T=DNS/RFC822/X-Unix,
A=procmail -Y -a $h -d $u
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=sh -c $u
+Mbbsmail, P=/home/bbs/bin/bbsmail, F=lsSDFMuhP, S=10, R=20,
+ A=bbsmail -d $u
# else we must be a local name
R$* $@ $>Canonify2 $1
+R$+.bbs $#bbsmail $: $1 bbsmail gateway
Sparse=0
R$* $: $>Parse0 $1 initial parsing
+R$+.bbs<@$=w.> $#bbsmail $: $1 bbs mail gateway 这里要注意顺序,顺序错了貌似收不到~
+R$+.board<@$=w.> $#bbsmail $: $1 bbs mail gateway
R<@> $#local $: <@> special case error msgs
R$* $: $>ParseLocal $1 handle local hacks
R$* $: $>Parse1 $1 final parsing
# handle locally delivered names
R$=L $#local $: @ $1 special local names
+R$+.bbs $#bbsmail $: $1 bbs mail gateway
+R$+.board $#bbsmail $: $1 bbs mail gateway
R$+ $#local $: $1 regular local names
全部修改好以后启动sendmail,用下面的命令测试一下~
/usr/lib/sendmail -bt
3,0 houzl.bbs
如果你设置正确,则会在最后几行显示为:
Parse1 input: houzl . bbs
Parse1 returns: $# bbsmail $: houzl
parse returns: $# bbsmail $: houzl
这就说明你的sendmail.cf基本搞定
3 修改mail2bbs中的文件
3.1 bbsmail
$bbsuid=501;
$bbsgid=501;
$mail2bbs="/home/bbs/bin/mail2bbs";
require "/home/bbs/bin/mailgate.pl"; 写的很清楚~改成自己的就可以了
3.2
- if ($1)$Header{$1} = $2;
- if ($3)$Header{$3} = $4;
- if ($5)$Header{$5} = $6;
+ if ($1){$Header{$1} = $2;}
+ if ($3){$Header{$3} = $4;}
+ if ($5){$Header{$5} = $6;}
4 一切搞定~启动sendmail就好了~~~~~~
--
FROM 202.115.112.*