基于qmail的完整WEBMAIL解决方案安装详解
作者:超音速小子WESTBROOK | 来源:互联网 | 2018-03-18 14:38
基于qmail的完整WEBMAIL解决方案安装详解
安装平台:Linux,Solaris 版本:qmail-1.03 安装的机器: mail.mydomain.com 软件包: qmail-1.03 qmail基本系统 ucspi-tcp-0.88 tcpsever服务程序 daemontools-0.70 监视工具 checkpassword-0.81 pop3验证用户的程序 ezmlm-0.53 邮件转发 vpopmail-4.9.6-1 虚拟域用户pop3支持 qmailadmin-0.35 虚拟域web管理 autorespond-1.0.0 自动回复程序 sqwebmail-1.2.0 webmail vqsignup-0.4 web方式用户注册 软件来源: http://www.qmail.org http://www.inter7.com/qmail 每个包安装前务必先仔细阅读INSTALL和FAQ,很多问题在FAQ都有解决方法。 安装步骤: 1. #mkdir /var/qmail 2. # groupadd nofiles # useradd -g nofiles -d /var/qmail/alias alias # useradd -g nofiles -d /var/qmail qmaild # useradd -g nofiles -d /var/qmail qmaill # useradd -g nofiles -d /var/qmail qmailp # groupadd qmail # useradd -g qmail -d /var/qmail qmailq # useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails 3. #tar xzvf qmail-1.03.tar.gz 进入qmail目录后,仔细阅读一下README和INSTALL文件.然后开始编译qmail #make setup check 4. #cd qmail-1.03 #./config 5. 建立系统别名 # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root) # chmod 644 ~alias/.qmail* 6. # cp /var/qmail/boot/home /var/qmail/rc # chmod 755 /var/qmail/rc 编辑 /var/qmail/rc 修改其中 ./Mailbox 成为 ./Maildir ,如下: # !/bin/sh # Using splogger to send the log through syslog. # Using qmail-local to deliver messages to ~/Maildir by default. exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir splogger q 其中 splogger qmail 指令是用来将纪录文件纪录于 / 中。 建立样板 $ /var/qmail/bin/maildirmake /etc/skel/Maildir $ echo ./Maildir/ > ~/.qmail 注意 Maildir 必须为该使用者所有,可以 chown 变更,并以 chmod 700 Maildir 设定权限。 7. 安装 ucspi-tcp-0.88 # tar zxvf ucspi-tcp-0.88.tar.gz # cd ucspi-tcp-0.88 # make # make setup check 执行档将被安装于 /usr/local/bin 中。 8. 安装 checkpassword # tar zxvf checkpassword-0.81.tar.gz # cd checkpassword-0.81 # make # make setup check # chmod og-rx /bin/checkpassword 执行档 checkpassword 将被安装于 /bin 中 如果不对/etc/passwd中的用户开放mail,不需要装checkpassword,只要装vpopmail 9. 安装 daemontools # tar zxvf daemontools-0.70.tar.gz # cd daemontools-0.70 # make # make setup check 执行档将安装于 /usr/local/bin 中 安装本工具后可以用 # mkdir /var/run/qmail # supervise /var/run/qmail /var/qmail/rc 来启动qmail,可以用svc来关闭活重起qmail,用svstat监视qmail运行情况,(qmail FAQ) 10. 安装 vpopmail # groupadd vchkpw # useradd -g vchkpw vpopmail # mkdir ~vpopmail/etc # echo ":allow" > ~vpopmail/etc/tcp.smtp # tar zvfz vpopmail-4.9.6-1.tar.gz # cd vpopmail-4.9.6-1 # ./configure --enable-roaming-users=y --enable-default-domain=mydomain.com --enable-passwd=n # make # make install-strip # crontab -e 40 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null # cd /home/vpopmail/bin # ./vadddomain mydomain.com mydomain append mydomain.com to /var/qmail/control/rcpthosts 11.停止sendmail 服务 # killall -TERM sendmail (Linux) 接着以 qmail 之 sendmail libraby 取代原有之 sendmail # mv /usr/lib/sendmail /usr/lib/sendmail.old # mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail # ln -s /var/qmail/sbin/sendmail /usr/sbin/sendmail 移除 sendmail 启动程序,以 Linux 为例: 移除 inetd.conf 中的 sendmail 之设定,以及 /etc/rc.d/init.d 下的 sendmail 启动档。(Linux) 12.启动qmail SMTP , POP3 daemon 系统服务 建立 SMTP 转信规则 建立 /etc/tcp.smtp 内容为 :allow 此为接受任何Client端所发出之转送信件 若要拒绝某些IP所发出之Relay则改为 /etc/tcp.smtp如下 1.2.3.4:allow,RELAYCLIENT="" 127.:allow, RELAYCLIENT="" 如此,除1.2.3.4及127.*之外的所有地址,都将被拒绝转送信件。 接下来,转换 tcp.smtp 成为 cdb 格式。 # /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp 注意:若对 tcp.smtp 有任何变更,都必须经过 tcprules 转换成为 cdb 才会生效。 另外,tcp.smtp 若为空白,则表示拒绝所有的转送,因为预设的规则为 deny。 至此,转送规则已建立,稍后将依此规则启动 qmail-smtpd。 设定 SMTP 及 POP3 daemon 之启动 请移除 inetd.conf 中有关 smtp 及 pop3 的设定 (加上 # 号) 编辑 /etc/services,改为以下设定: smtp 25/tcp mail # pop-3 110/tcp #pop version 3 # pop-3 110/udp pop3 110/tcp pop3 110/udp 启动 SMTP: /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & 其中UID和GID为前述新增 qmail 系统账号之 qmaild 之 User ID,以及 nofiles 之 group ID。 /var/qmail/bin/splogger那一行会将log档写在 /var/log/maillog。 启动 POP3: 编辑启动档加入以下设定: tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir & 在/etc/rc.d/init.d下建立文件qmail,内容如下: ------------------------------------------- #! /bin/sh case "$1" in start) echo -n "start qmail:" /var/qmail/rc & echo "." echo -n "start smtp service:" /usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb -u UID -g GID 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & echo "." echo -n "start pop3 service:" tcpserver -H -R 0 pop3 /var/qmail/bin/qmail-popup mail.mydomain.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir & echo "." stop) echo -n "stop qmail:" echo "." *) exit 1 esac exit 0 ----------------------------------------------------- # cd ../rc3.d # ln -s ../init.d/qmail S98qmail qmailadmin WEB方式管理qmail 1 ezmlm $ make $ make man # make setup 2 autorespond gcc -Wall -o autorespond autorespond.c cp autorespond /usr/local/bin/autorespond 3 qmailAdmin 3.1. 在你开始以前还有几件事需要考虑. a. 你是否有vpopmail 用户而且已经安装了vchkpw b. 你的 cgi bin 目录的位置 c. 你的 ezmlm 目录的位置 d. 你的 autorespond 目录的位置 如果这些部分你有忽略,那先暂停继续,先把这些搞定吧!! 3.2 install # ./configure # make # make install-strip 浏览器中打开路径http://mail.mydomain.com/cgi-bin/qmailadmin 用户postmaster;域mydomain.com;口令:mydomain WebMail -- SqWebmail # tar xvfz sqwebmail-1.2.0.tar.gz # cd sqwebmail-1.2.0 # ./configure --without-authpam --without-authuserdb --enable-webpass=no --without-authpwd --without-authshadow # make configure-check # make (当我make的时候报错找不到db.h,cp /usr/include/db1/db.h /usr/include/db.h) # make check # make install-strip # make install-configure 浏览器中打开路径http://mail.mydomain.com/cgi-bin/sqwebmail vqsignup # tar xvfz vqsignup-0.4.tar.gz # cd vqsignup-4.0 按照INSTALL安装
推荐阅读
本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ...
[详细]
蜡笔小新 2023-12-14 18:16:27
本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ...
[详细]
蜡笔小新 2023-12-12 12:55:55
Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ...
[详细]
蜡笔小新 2023-12-14 19:06:22
本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ...
[详细]
蜡笔小新 2023-12-13 17:13:18
篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-13 13:04:08
本文介绍了缤果串口网络蓝牙调试助手的主要特点,包括支持常用的波特率、校验、数据位和停止位设置,以及以ASCII码或十六进制接收或发送数据或字符的功能。该助手还能任意设定自动发送周期,并能将接收数据保存成文本文件。同时,该软件支持网络UDP/TCP和蓝牙功能。最后,提供了腾讯微云和百度网盘的下载链接。 ...
[详细]
蜡笔小新 2023-12-13 09:21:55
本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ...
[详细]
蜡笔小新 2023-12-10 14:33:46
本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ...
[详细]
蜡笔小新 2023-12-10 14:09:00
本文介绍了C#中快速生成随机整数的方法。默认的Random类构造函数使用时间作为种子,会生成许多重复的随机数。文章探讨了是否有更快的方案,并讨论了随机数可以出现重复的情况。 ...
[详细]
蜡笔小新 2023-12-10 14:04:16
在C#中,使用关键字abstract来定义抽象类和抽象方法。抽象类是一种不能被实例化的类,它只提供部分实现,但可以被其他类继承并创建实例。抽象类可以用于类、方法、属性、索引器和事件。在一个类声明中使用abstract表示该类倾向于作为其他类的基类成员被标识为抽象,或者被包含在一个抽象类中,必须由其派生类实现。本文介绍了C#中抽象类和抽象方法的基础知识,并提供了一个示例代码。 ...
[详细]
蜡笔小新 2023-12-10 13:06:29
在C#/ .NET中,处理基督面前的日期没有内置支持,需要编写自己的代码。本文介绍了在处理此类日期时的最佳方法,并提供了一个示例链接,可以参考编码的解决方案。 ...
[详细]
蜡笔小新 2023-12-10 11:12:51
本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ...
[详细]
蜡笔小新 2023-12-10 11:01:31
最近在使用C#进行录屏,通过调用ffmpeg的cmd命令进行录制。设置的录制时长是30秒,但实际只录制了11秒就停止了。关闭程序后,又开始录制并成功录制了30秒。请问大神,这是什么原因?附上了简单的调用程序。 ...
[详细]
蜡笔小新 2023-12-10 10:52:20
当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ...
[详细]
蜡笔小新 2023-12-10 10:37:32
作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ...
[详细]
蜡笔小新 2023-12-10 10:11:17
超音速小子WESTBROOK
这个家伙很懒,什么也没留下!