Qmail邮件系统

实验名称:Qmail邮件系统搭建

实验环境:红帽子企业Linux5.4

这个实验相对来说比较复杂、也比较麻烦、希望在实验过程正要细心!!!!!!!!

只要严格按照下面步骤来做、一般不会出问题、

所需软件:

netqmail-1.05.tar.gz-- (不用说应该知道干什么的了吧!)

ucspi-tcp-0.88.tar.gz-- 一个inetd超级服务器的替换程序

daemontools-0.76.tar.gz-- 一个管理后台服务程序以及日志的工具套件

*checkpassword-0.90.tar.gz-- POP3 服务模块化的密码检查

第一步:先搭建好dns 域名为mail.li.com  ip为15.15.15.15

现在dns已经搭建好了

wps_clip_image-13861

第二步:正式搭建qmail系统

挂载Qmail镜像

wps_clip_image-26834

把所需软件拷贝到/usr/local/src目录中

wps_clip_image-12349

wps_clip_image-12309

创建目录

wps_clip_image-4338

把daemontools移动到/package目录中

wps_clip_image-25883

并赋予权限

wps_clip_image-31888

解压

wps_clip_image-20947

wps_clip_image-14547wps_clip_image-25195wps_clip_image-20745

wps_clip_image-28008wps_clip_image-8275

注意qmail安装程序会自行创建需要的子目录, 你只需要创建qmail的"home"目录:wps_clip_image-28013

最容易的创建用户和组的方式是创建一个小脚本文件然后执行它. 在源代码目录下你可以找到一个名字是INSTALL.ids的文件, 它包括了在你的系统平台下创建用户和组的命令行. 复制这个文件并命名另外一个名字, 编辑它来运行命令既快捷又简单.

wps_clip_image-6844

修改IDS成为下图的样子

wps_clip_image-17001

修改完后保存并给其赋予可执行权限

wps_clip_image-13379

然后执行IDS

wps_clip_image-32003

随后编辑vi /etc/passwd   修改为/true

wps_clip_image-32016

编译软件

wps_clip_image-3697

wps_clip_image-1126

wps_clip_image-18476

结束

如果你的DNS配置恰当, 运行这个脚本:要实现下面的效果可真要注意了、要注意本机的dns是否填写正确、主机全名、

wps_clip_image-24597

打上补丁

wps_clip_image-12829

wps_clip_image-25710wps_clip_image-13099

结束

wps_clip_image-14615

wps_clip_image-10075

wps_clip_image-6439wps_clip_image-6118

结束

运行 qmail:

qmail启动脚本:

vi /var/qmail/rc

内容如下:

#!/bin/sh

# Using stdout for logging

# Using control/defaultdelivery from qmail-local to deliver messages by default

exec env - PATH="/var/qmail/bin:$PATH" qmail-start "`cat /var/qmail/control/defaultdelivery`"

里面的代码要怎么往里面添加呢?看步骤

里面的代码都在镜像里面的Qmail.txt中,用dos2unix将Qmail.txt转换、然后在Qmail.txt中将需要的代码复制到需要的文件中

wps_clip_image-16755

打开mail.txt

wps_clip_image-11493

进去后找到需要的代码然后复制

wps_clip_image-26099

找到了

输入:set nu回车 显示行数,wps_clip_image-28044随后输入:116,.y回车wps_clip_image-4009意思就是从116行到当前鼠标的位置复制    ¥符是代表末尾  d删除

wps_clip_image-19208

然后输入:e /var/qmail/rc    意思就是创建文件/var/qmail/rc

wps_clip_image-3702

进去后按P粘贴

wps_clip_image-4986

去掉多余行、、以后就不写说明了

wps_clip_image-18099

wps_clip_image-5546

wps_clip_image-8338

如果你手动执行/varqmail/rc 脚本, qmail只会部分被运行起来. 可是我们希望希望每次系统启动后, qmail都能自动被启动; 每次系统停止时候qmail自动被关闭。创建一个如下的 /var/qmail/bin/qmailctl 文件可以完成这个愿望:

vi /var/qmail/bin/qmailctl

内容如下:

#!/bin/sh

# description: the qmail MTA

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 /service/qmail-send ; then

      svc -u /service/qmail-send /service/qmail-send/log

    else

      echo "qmail-send supervise not running"

    fi

    if svok /service/qmail-smtpd ; then

svc -u /service/qmail-smtpd /service/qmail-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-smtpd"

    svc -d /service/qmail-smtpd /service/qmail-smtpd/log

    echo "  qmail-send"

    svc -d /service/qmail-send /service/qmail-send/log

    if [ -f /var/lock/subsys/qmail ]; then

rm /var/lock/subsys/qmail

    fi

    ;;

  stat)

    svstat /service/qmail-send

    svstat /service/qmail-send/log

    svstat /service/qmail-smtpd

    svstat /service/qmail-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 /service/qmail-send

    ;;

  queue)

    qmail-qstat

    qmail-qread

    ;;

  reload|hup)

    echo "Sending HUP signal to qmail-send."

    svc -h /service/qmail-send

    ;;

  pause)

    echo "Pausing qmail-send"

    svc -p /service/qmail-send

    echo "Pausing qmail-smtpd"

    svc -p /service/qmail-smtpd

    ;;

  cont)

    echo "Continuing qmail-send"

    svc -c /service/qmail-send

    echo "Continuing qmail-smtpd"

    svc -c /service/qmail-smtpd

    ;;

  restart)

    echo "Restarting qmail:"

    echo "* Stopping qmail-smtpd."

    svc -d /service/qmail-smtpd /service/qmail-smtpd/log

    echo "* Sending qmail-send SIGTERM and restarting."

svc -t /service/qmail-send /service/qmail-send/log

    echo "* Restarting qmail-smtpd."

    svc -u /service/qmail-smtpd /service/qmail-smtpd/log

    ;;

  cdb)

    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

chmod 644 /etc/tcp.smtp.cdb

    echo "Reloaded /etc/tcp.smtp."

    ;;

  help)

    cat &lt;&lt;HELP

   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

现在就是在mail.txt中找到这些代码然后创建文件复制进去

wps_clip_image-17248

wps_clip_image-20373

然后保存退出

将上面这个qmailctl 脚本设置为可执行脚本, 然后链接到你的用户执行程序目录:

chmod 755 /var/qmail/bin/qmailctl

ln -s /var/qmail/bin/qmailctl /usr/bin

wps_clip_image-20363

建立supervise 脚本:

为 qmail 的服务创建 supervise 目录:

wps_clip_image-6806

建立 /var/qmail/supervise/qmail-send/run 文件:

vi /var/qmail/supervise/qmail-send/run

内容如下:

#!/bin/sh

exec /var/qmail/rc

wps_clip_image-28319

保存退出

建立 /var/qmail/supervise/qmail-send/log/run 文件:

vi /var/qmail/supervise/qmail-send/log/run

内容如下:

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

wps_clip_image-20790

保存退出

建立 /var/qmail/supervise/qmail-smtpd/run 文件:

vi /var/qmail/supervise/qmail-smtpd/run

内容如下:

#!/bin/sh

QMAILDUID=`id -u qmaild`

NOFILESGID=`id -g qmaild`

MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`

LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then

echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in

    echo /var/qmail/supervise/qmail-smtpd/run

    exit 1

fi

if [ ! -f /var/qmail/control/rcpthosts ]; then

echo "No /var/qmail/control/rcpthosts!"

echo "Refusing to start SMTP listener because it'll create an open relay"

    exit 1

fi

exec /usr/local/bin/softlimit -m 2000000 \

    /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \

        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

wps_clip_image-21195

wps_clip_image-16818wps_clip_image-2806

保存退出

建立concurrencyincoming 控制文件.

wps_clip_image-23150

建立 /var/qmail/supervise/qmail-smtpd/log/run 文件:

vi /var/qmail/supervise/qmail-smtpd/log/run

内容如下:

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

wps_clip_image-15535

保存退出

将各个run文件设置为可执行文件:

wps_clip_image-4702

然后建立log文件目录:

wps_clip_image-29280wps_clip_image-19098

最后, 建立 supervise 目录到 /service 目录的链接:

wps_clip_image-18140

(注:/service 目录是 daemontools 安装时建立的目录.)

注意: 建立这个链接之后 qmail 系统会很快自动被启动起来,

wps_clip_image-14898

如果你还不想立刻运行qmail, 运行下面这个,命令来停止qmail:

qmailctl stop

SMTP 访问控制:

允许本地主机通过SMTP方式发送邮件:

wps_clip_image-778

为用户建立自己的Maildir格式信箱:

wps_clip_image-28265

wps_clip_image-3916

现在系统中有yang个li用户、现在li给yang发邮件

wps_clip_image-4815

然后再yang的根目录上查看邮件

wps_clip_image-30213

发送成功、、、、、、

下来是安装pop3功能

wps_clip_image-3604

wps_clip_image-14653

wps_clip_image-29810

wps_clip_image-2233

创建一个/var/qmail/supervise/qmail-pop3d/run 脚本,

vi /var/qmail/supervise/qmail-pop3d/run

包括如下内容:

#!/bin/sh

exec /usr/local/bin/softlimit -m 2000000 \

/usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \

        FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2&gt;&1

(FQDN 是你建立的POP服务器的完整的有资格的正式域名)

wps_clip_image-18020

保存退出

wps_clip_image-31058

创建包括以下内容的/var/qmail/supervise/qmail-pop3d/log/run 文件.

vi /var/qmail/supervise/qmail-pop3d/log/run

包括如下内容:

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d

wps_clip_image-19047

保存退出

建立log日志文件夹并且设置相应的run脚本, 将脚本链接到 /service 目录:

wps_clip_image-20598wps_clip_image-28052wps_clip_image-30414

wps_clip_image-11791

将下面内容加入qmailctl脚本的"start"部分

    if svok /service/qmail-pop3d ; then

      svc -u /service/qmail-pop3d /service/qmail-pop3d/log

    else

      echo qmail-pop3d supervise not running

fi

wps_clip_image-29036

wps_clip_image-1572

保存退出

将下面内容加入qmailctl脚本的"stop"部分

    echo "  qmail-pop3d"

svc -d /service/qmail-pop3d /service/qmail-pop3d/log

wps_clip_image-7429

将下面内容加入qmailctl脚本的"stat"部分

    svstat /service/qmail-pop3d

svstat /service/qmail-pop3d/log

wps_clip_image-17660

将下面内容加入qmailctl脚本的"pause"部分

    echo "Pausing qmail-pop3d"

svc -p /service/qmail-pop3d

wps_clip_image-1078

将下面内容加入qmailctl脚本的"cont"部分

    echo "Continuing qmail-pop3d"

    svc -c /service/qmail-pop3d

wps_clip_image-27221

将下面内容加入qmailctl脚本的"restart"部分

    echo "* Restarting qmail-pop3d."

svc -t /service/qmail-pop3d /service/qmail-pop3d/log

wps_clip_image-12542

保存退出,全部修改完成

在windows客户端发邮件测试

wps_clip_image-1189

给yang发送一封邮件

wps_clip_image-6843

然后用yang登录、查看li给自己发的邮件

wps_clip_image-7545

接收成功

你可能感兴趣的:(职场,休闲,Qmail邮件系统)