网络安全 频道

qmail + vpopmail +squirrelmail安装经验谈

# 如果需要丢弃两次弹回的邮件,就采用:
echo ''#'' > ~alias/.qmail-doublebounce
# 把邮件最大设为 20MB。
echo ''20480000'' > /var/qmail/control/databytes
# 邮件队列最多等待 4天。
echo ''345600'' > /var/qmail/control/queuelifetime

qmailctl restart 我们可以用 telnet localhost 25 和 110 来分别测试服务运行的情况了。

四、安装 Vpopmail

groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail
cd /usr/local/src
tar xzf $QM_GZDIR/vpopmail-5.3.20.tar.gz
cd vpopmail-5.3.20
chmod 600 vmysql.h
vi vmysql.h
#define MYSQL_UPDATE_USER "vpopmailuser"
#define MYSQL_UPDATE_PASSWD "vpoppasswd"
#define MYSQL_READ_USER "vpopmailuser"
#define MYSQL_READ_PASSWD "vpoppasswd"

修改为适合自己的用户名和口令。
在 MySQL 上建立数据库 vpopmail ,并用
grant 命令给以上的用户名和口令赋权限。

配置命令:
./configure --enable-mysql=y --enable-roaming-users=y --enable-mysql-logging=y --enable-clear-passwd=y \
--enable-default-domain=yourdomain.com --enable-defaultquota=50M \
--enable-incdir=/opt/mysql/include/mysql --enable-libdir=/opt/mysql/lib/mysql

make
make install-strip

vi /home/vpopmail/domains/.quotawarn.msg
可以建立磁盘限额报警信息。

也可以提醒发件人,收件人的磁盘已满:
echo "Message rejected. Not enough storage space in user''s mailbox to accept message." > /home/vpopmail/domains/.over-quota.msg

五、安装 COURIER IMAP
cd /usr/local/src
tar xjf $QM_GZDIR/courier-imap-1.7.3.tar.bz2
cd courier-imap-1.7.3
vi maildir/maildirpurgetmp.c

在大约 64 行,把
&& stat_buf.st_ctime < current_time - nage)
修改为:
&& stat_buf.st_mtime < current_time - nage)

主要解决 IMAP 文件夹同步等按邮件到达时间还是按修改时间的问题。

./configure \
--disable-root-check \
--without-authdaemon \
--with-authvchkpw

(这一步会花比较长的时间,请耐心等候)
make
// make check ; 用于检查错误 --enable-workarounds-for-imap-client-bugs
make install-strip
make install-configure

vi /usr/lib/courier-imap/etc/imapd
(注意是 /usr/lib 不是 /usr/local 有的文档写 /usr/local 是不对的)

设置或者修改如下参数:

MAXDAEMONS=40 <- IMAP 服务的最多数目
MAXPERIP=100 <- 每个 IP 地址允许的最多连接数
TCPDOPTS="-nodnslookup -noidentlookup -user=vpopmail -group=vchkpw" <-用指定的用户和组运行 IMAP 服务
AUTHMODULES="authvchkpw" <-用 authvchkpw 作口令认证
IMAP_EMPTYTRASH=Trash:7,Sent:30 <-垃圾箱中的邮件7天后自动删除,已发送邮件 30 天。
IMAPDSTART=YES 设置 imapd 为启动。

vi /usr/lib/courier-imap/libexec/imapd.rc
修改:
/usr/lib/courier-imap/libexec/couriertcpd -address=$ADDRESS \
为:
/usr/lib/courier-imap/libexec/couriertcpd -address=$ADDRESS \
-user=vpopmail -group=vchkpw

六、测试

测试 POP3 服务:

telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is ''^]''.
+OK Hello there.
user user@abc.com
+OK Password required.
pass [password]
+OK logged in.
quit
+OK Bye-bye.
Connection closed by foreign host.

测试 IMAP 服务:

telnet localhost 143

Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is ''^]''.
* OK Courier-IMAP ready. Copyright 1998-2001 Double Precision, Inc. See COPYING for distribution information.
a001 login user@abc.com [password]
a001 OK LOGIN Ok.
a001 logout
* BYE Courier-IMAP server shutting down
a001 OK LOGOUT completed
Connection closed by foreign host.

如果不能退出用 Ctrl-] 退出到 telnet> 状态,然后 quit 退出。

七、安装 Squirrelmail

cd /usr/local/apache/htdocs
tar -xzf $QM_GZDIR/squirrelmail-1.4.0.tar.gz
mv squirrelmail-1.4.0 webmail
cd webmail
mkdir attachment
chown -R
www.www data
chown -R
www.www attachment
chmod 733 attachment
./configure

这个脚本应该比较简单了,但是需要注意的是,需要把 IMAP 配置修改为 courier 类型。
configure 时有关于 Inbox/Trash/Sent 等邮件夹的命名,需要和 /usr/lib/courier-imap/etc/imapd 中的邮件夹对应起来。


修改语言的地方是 locale/zh_CN/LC_MESSAGES 下的 squirrelmail.po 。
修改完毕后,用 msgfmt -o squirrelmail.mo squirrelmail.po 来格式化一下。

另外有一些好的 Plugin 可以去
www.squirrelmail.org 下载,但是国内封锁了这个地址,需要用代理服务器才能访问,建议您寻找合适的代理服务器去访问。

在 Linux Console 下用 wget 去下载这些 plugin 时,需要设置:
export http_proxy="ns.proserv.co.jp:80"
然后就可以用 wget 下载了。



八、需要注意的其他事项:

1、安装 PHP 时需要配置的 php.ini 的参数:
max_execution_time=60
memory_limit=10M
post_max_size=8M
upload_max_filesize=8M
file_uploads=On
log_errors=On
error_log=/usr/local/apache/logs/php.error

如果你看到没有这个错误文件产生,需要 touch 这个文件,并让 www 用户有权写这个文件。
然后重新启动 apache 就应该可以了。

需要说明的是,您的 php.ini 并不一定使用以上的目录,您需要建立一个页面 test.php
<?php
phpinfo();
?>
查找 php.ini,确认您的 php.ini 的路径是否和自己建立的一致。
另外用 CGI 方式的 php 程序,可以在命令行下用 php -i|grep php.ini 知道 php.ini的路径。

建立 SquirrelMail 用户配置文件的数据库,
建议建立在 vpopmail 数据库上。

CREATE TABLE address_book (
owner varchar(128) DEFAULT '''' NOT NULL,
nickname varchar(16) DEFAULT '''' NOT NULL,
firstname varchar(128) DEFAULT '''' NOT NULL,
lastname varchar(128) DEFAULT '''' NOT NULL,
email varchar(128) DEFAULT '''' NOT NULL,
label varchar(255),
PRIMARY KEY (owner,nickname),
KEY firstname (firstname,lastname)
);

CREATE TABLE userprefs (
user varchar(128) DEFAULT '''' NOT NULL,
prefkey varchar(64) DEFAULT '''' NOT NULL,
prefval blob DEFAULT '''' NOT NULL,
PRIMARY KEY (user,prefkey)
);
quit

===============================================
附件:

文件下载记录:
wget
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget http://cr.yp.to/software/qmail-1.03.tar.gz
wget http://www.ckdhr.com/ckd/qmail-103.patch
wget
http://www.qmail.org/qmailqueue-patch
wget
http://www.shupp.org/patches/qmail-maildir++.patch
wget
ftp://ftp.pipeline.com.au/PipeInt/Sources/Linux/WebMail/qmail-date-localtime.patch.txt
wget
ftp://ftp.pipeline.com.au/pipeint/sources/linux/WebMail/qmail-badmailfrom-badrcptto.patch.txt
wget
ftp://ftp.pipeline.com.au/pipeint/sources/linux/WebMail/qmailctl.txt
wget
http://www.inter7.com/devel/vpopmail-5.3.20.tar.gz
wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget http://www.qmail.org/ucspi-rss.diff
wget http://apache.linuxforum.net/dist/httpd/httpd-2.0.45.tar.gz
wget http://flow.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.0.tar.bz2
wget http://telia.dl.sourceforge.net/sourceforge/courier/courier-imap-1.7.3.tar.bz2
wget http://telia.dl.sourceforge.net/sourceforge/courier/maildrop-1.5.3.tar.bz2
wget http://telia.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.15.tgz
wget http://www.jerfu.com/downloads/toaster/idx.shupp.patch.gz
wget http://www.jerfu.com/downloads/toaster/toaster-scripts.tar.gz
wget http://www.spamassassin.org/released/Mail-SpamAssassin-2.31.tar.gz
wget http://www.tiski.de/linux/patches/vpopmail/patch-quotafix-1.06.gz


关于 qmail vpopmail 的原理问题,将另文详细解说。

http://netadmin.77169.com/HTML/20031202145900.html

0
相关文章