免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1302 | 回复: 0
打印 上一主题 下一主题

Qmail Setup [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-08 01:10 |只看该作者 |倒序浏览

吼,我的一个哥们发给我的,顺便贴出来

1.安装mysql
cd /usr/ports/database/mysql40-server
make WITH_XCHARSET=all DB_DIR=/home/mysqldb BUILD_OPTIMIZED=yes install clean

修改mysql的绑定地址及最大连接数
修改/usr/local/etc/rc.d/mysql-server.sh中
/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR} --pid-file=${PIDFILE} > /dev/null &

/usr/local/bin/mysqld_safe --user=mysql --datadir=${DB_DIR} --pid-file=${PIDFILE} --bind-address=127.0.0.1 -O max_connections=512 > /dev/null &

修改mysql的密码
use mysql;
set  password for 'root'@'localhost' = password ('1198205255');

--------------------------------------

2.安装qmail
cd /usr/ports/mail/qmail
make patch
cd work/qmail-1.03
tar xjvf spamcontrol.tar.bz2
./spamcontrol.sh
cd ../..
make install clean

cd /var/qmail/configure
./config-fast nxl.3322.org

cp /var/qmail/boot/maildir /var/qmail/rc   (后面还会修改)

mv /usr/sbin/sendmail /usr/sbin/sendmail.old
ln -s /var/qmail/bin/sendmail /usr/sbin

-------------------------------------

3.安装vpopmail
make WITH_MYSQL=yes WITH_MYSQL_SERVER=localhost WITH_MYSQL_USER=root WITH_MYSQL_PASSWD=computer WITH_MYSQL_DB=vpopmail WITH_MYSQL_LIMITS=yes install clean

chmod 6755 /usr/local/vpopmail/bin/vchkpw

修改/usr/local/vpopmail/etc/tcp.smtp为
127.0.0.1:allow,RELAYCLIENT="",REQUIREAUTH=""
如果不加127.0.0.1会不能收其他域的邮件
但是这样,对本域的验证就失效了

生成tcp.smtp.cdb
cd /usr/local/vpopmail/etc
tcprules tcp.smtp.cdb tcp.smtp.tmp

---------------------------------------

4.安装daemontools
cd /usr/ports/sysutils/daemontools
make install clean

daemontools目录结构如下:


建立daemontools目录结构
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
mkdir -p /var/log/qmail/send
mkdir /var/service
mkdir -p /var/qmail/supervise/smtpd/log
mkdir -p /var/qmail/supervise/pop3d/log
mkdir -p /var/qmail/supervise/send/log
ln -s /var/qmail/supervise/* /var/service

改变权限
chmod -R 755 /var/log/qmail
chown -R qmaill /var/log/qmail
chmod 755 /var/service
chmod 755 /var/qmail/supervise
chmod +t /var/qmail/supervise/smtpd
chmod +t /var/qmail/supervise/pop3d
chmod +t /var/qmail/supervise/send

修改/var/qmail/rc
#!/bin/sh
#
#
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/

建立supervise脚本
touch /var/qmail/supervise/send/run
#!/bin/sh
exec /var/qmail/rc

touch /var/qmail/supervise/send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/send

touch /var/qmail/supervise/pop3d/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l nxlmail.3322.org -c 512 0 pop3 \
/var/qmail/bin/qmail-popup nxlmail.3322.org /usr/local/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1

touch /var/qmail/supervise/pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d

touch /var/qmail/supervise/smtpd/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l nxlmail.3322.org -x /usr/local/vpopmail/etc/tcp.smtp.cdb \
-c 512 -u `id -u qmaild` -g `id -g qmaild` 0 smtp /var/qmail/bin/qmail-smtpd \
/usr/local/vpopmail/bin/vchkpw /usr/bin/true 2>&1

touch /var/qmail/supervise/smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

修改run的属性
cd /var/qmail/supervise
chmod 755 `find ./ -name "run"`

生成qmailctl文件
#!/bin/sh

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
  start)
    echo "Starting qmail"
    if svok /var/service/send ; then
      svc -u /var/service/send /var/service/send/log
    else
      echo "qmail-send supervise not running"
    fi
    if svok /var/service/pop3d ; then
      svc -u /var/service/pop3d /var/service/pop3d/log
    else
      echo "qmail-pop3d supervise not running"
    fi
    if svok /var/service/smtpd ; then
      svc -u /var/service/smtpd /var/service/smtpd/log
    else
      echo "qmail-smtpd supervise not running"
fi
    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi
    ;;
  stop)
    echo "Stopping qmail..."
    echo "  qmail-pop3d"
    svc -d /var/service/pop3d /var/service/pop3d/log
    echo "  qmail-smtpd"
    svc -d /var/service/smtpd /var/service/smtpd/log
    echo "  qmail-send"
    svc -d /var/service/send /var/service/send/log
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
    ;;
  stat)
    svstat /var/service/send
    svstat /var/service/send/log
svstat /var/service/pop3d
    svstat /var/service/pop3d/log
    svstat /var/service/smtpd
    svstat /var/service/smtpd/log
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Flushing timeout table and sending ALRM signal to qmail-send."
    /var/qmail/bin/qmail-tcpok
    svc -a /var/service/send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /var/service/send
    ;;
  pause)
echo "Pausing qmail-send"
    svc -p /var/service/send
    echo "Pausing qmail-smtpd"
    svc -p /var/service/smtpd
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /var/service/send
    echo "Continuing qmail-smtpd"
    svc -c /var/service/smtpd
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /var/service/smtpd /var/service/smtpd/log
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /var/service/send /var/service/send/log
    echo "* Restarting qmail-smtpd."
    svc -u /var/service/smtpd /var/service/smtpd/log
    ;;
  cdb)
    tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb /usr/local/vpopmail/etc/tcp.smtp.tmp
    chmod 644 /usr/local/vpopmail/etc/tcp.smtp.cdb
    echo "Reloaded /usr/local/vpopmail/etc/tcp.smtp."
;;
  help)
    cat
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
   stat -- displays status of mail service
    cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
  queue -- shows status of queue
   alrm -- same as doqueue
  flush -- same as doqueue
    hup -- same as reload
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
    exit 1
    ;;
esac

exit 0

记得做以下步骤,不然svscan是起不来的
unlink /usr/local/etc/rc.d/qmail.sh
echo 'svscan_enable="YES"' >> /etc/rc.conf




5.安装杀毒模块qmail-scaner和反垃圾邮件模块
(1)安装clamav
cd /usr/ports/security/clamav
make install clean

echo 'clamav_freshclam_enable=”YES”' >> /etc/rc.conf
编辑 /usr/local/etc/freshclam.conf

Checks 12

Checks 2

(2)安装spamassassin
cd /usr/ports/mail/p5-Mail-SpamAssassin
make install clean

echo 'spamd_enable=”YES”'>>/etc/rc.conf

编辑/etc/crontab,添加下面一行
* * */7 * * root fetch -o /usr/local/share/spamassassin/00_chinese.cf http://www.ccert.edu.cn/spam/sa/Chinese_rules.cf
目的是定期更新适合中国的规则文件

(3)安装qmail-scaner(需要安装bash,用ports安装)
chmod 4711 /usr/bin/suidperl

make QMAILSCAN_ADMIN=ifconfig@tjyh2003.com QMAILSCAN_LOCALDOMAINS=mail.yhbbs.edu QMAILSCAN_SCANNERS=clamscan,fast_spamassassin install clean



Building Qmail-Scanner 1.24...

This script will search your system for the virus scanners it knows
about, and will ensure that all external programs
qmail-scanner-queue.pl uses are explicitly pathed for performance
reasons.


It will then generate qmail-scanner-queue.pl - it is up to you to install it
correctly.


Something like spamc for SpamAssassin detected - but not correctly installed
(didn't include a "X-Spam-Status" line in output).
Please read Q-S FAQ if you want it - especially check that spamd daemon
is running. Ignoring...


               **************************

Cannot find evidence of QMAILQUEUE patch in /var/qmail/bin/qmail-smtpd!

This package REQUIRES that Qmail patch in order to operate.

Please read the README.html file again and download and install the patch
before continuing...

               **************************

test -f /usr/ports/mail/qmail-scanner/work/qmail-scanner-1.24/qmail-scanner-queue.pl
*** Error code 1

Stop in /usr/ports/mail/qmail-scanner.
================================================
(安装过程非常缓慢)
(必须要手工指定QMAILSCAN_SCANNERS否则运行test_installation.sh会出现4.3.0的错误)

echo 'export QMAILQUEUE=”/usr/local/bin/qmail-scanner-queue.pl”'>>/var/qmail/supervise/smtpd/run

再把smtpd的启动脚本中,softlimit -m的值改大些,比如30000000

编辑/usr/local/bin/qmail-scanner-queue.pl
查找到my $spamc_options=' -f';
添加-c参数,记得-c前要有个空格
查找到my $spamc_subject='';
这个是在垃圾邮件的标题中要添加的文字,可以自己随便写

make extract之后contrib中的test_installation.sh -doit,他会发4封邮件,一封正常,两封带毒,一个垃圾邮件,收一下postmaster的邮箱,看看有没有这4封邮件,有就证明没问题了。

如果之中遇到问题,编辑/usr/local/bin/qmail-scaner-queue.pl
找到my $DEBUG='0';
把0改成1
这样就可以生成/usr/local/qmailscan/qmail-queue.log,方便排错了。


6.安装imp
imp是horde的一个模块,支持pop3及imap,之所以选择horde,是因为horde是模块化的东西,如果用户需要,还可以安装其他模块,如地址簿,收藏夹,日历等,非常方便。

cd /usr/ports/mail/imp3
make WITHOUT_LDAP=yes WITHOUT_SSL=yes WITHOUT_IMAPSERVER=yes install clean
会安装很多ports,耐心等待

启动apache
访问http://ur_server/horde/test.php,会发现没有安装HTML_Select
cd /usr/ports/devel/pear-HTML_Select
make install clean

生成horde数据库
vi /usr/local/www/horde/scripts/db/mysql_create.sql
修改第23行,这里是horde数据库的密码,自己改吧
mysql -u root -p

vi /usr/local/www/horde/config/horde.php
修改第171行,这里是mysql中horde数据库的用户名和密码
用户名是horde,密码就是你自己刚才设置的那个

vi /usr/local/www/horde/config/lang.php
第13行和17行
修改
$nls['default']['language']='en_US';
改为zh_CN
修改
$nls['default']['charset']='ISO-8859-1';
改为GB2312

vi /usr/local/www/horde/imp/config/prefs.php
第426行
将value的值改为0,locked的值改为true
第773行
将value值改为localsql

vi /usr/local/www/horde/imp/config/servers.php
先将所有跟pop3无关的服务器注释掉,再编辑跟pop3有关的项目
查看server,protocol,port,maildomain这几项,一般情况都是正确的
注:我在这里遇到一个问题,因为我的这个服务器经过了NAT转换,开始我把server的地址设置成了外网地址,无论如何,也不能登陆,后来把server地址改成内网地址就好了。有关NAT的问题,去cisco查查就明白了。

vi /usr/local/www/horde/turba/config/sources/php
第146行
修改username和password

创建turba的表
mysql -D horde -u root -p



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/186/showart_137853.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP