免费注册 查看新帖 |

Chinaunix

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

[Mail] [求助]在RH7.2下安装IMAP4的过程中出现的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-14 14:19 |只看该作者 |倒序浏览
公司有个项目,使用linux7.2+qmail1.03+checkpassword0.90+openldap2.0.18+ucspi-tcp 0.88+Courier-IMAP1.6.1+pop before smtp+...
搭建环境的工作由我来负责。
可是这些东西我原来没怎么接触过,公司也没有能提供足够的资料。
摸索着把qmail+checkpasswd+openldap+ucspi-tcp装上了,本地测试和用outlook作远程测试都通过了。
现在在安装imap4的时候出现了问题。
按照相应网站的官方英文资料,把imap4包安装上。
但是在本地和远程telnet 143端口的时候,均出现如下信息:* OK Courier-IMAP ready. Copyright 1998-2002 Double Precision, Inc. See COPYING
for distribution information.
然后就没反应了。输入指令总是返回如下信息:
* NO Error in IMAP command received by server.
过一段时间就超时遗失连接。
qmail的启动文件内容如下:
csh -cf '/var/qmail/rc' &
tcpserver -HR -x /etc/tcp.smtp.cdb -u 501 -g 500 0 smtp /var/qmail/bin/qmail-smt
pd &
env LOGLEVEL=255 tcpserver -HR 0 pop3 /var/qmail/bin/qmail-popup mserver.id-mail
.syntt.com.cn /var/qmail/bin/auth_pop /var/qmail/bin/qmail-pop3d Maildir 2>;&1 &
tcpserver -v -R 192.168.0.79 imap /usr/lib/courier-imap/sbin/imaplogin /var/qmai
l/bin/auth_imap /usr/lib/courier-imap/bin/imapd Maildir &
其中最后一行是按照资料在装完imap4后添加的。
192.168.0.79是RH7.2这台机器的ip。
没装imap4前是可以启动的。现在启动不起来了。执行它的效果如下:
[root@mserver huhu]# runmail
tcpserver: fatal: unable to bind: address already used
tcpserver: fatal: unable to bind: address already used
tcpserver: fatal: unable to bind: address already used
通过察看143端口,发现该端口就是Courier-IMAP在使用。
而看runmail文件最后一句的意思,是想通过tcpserver把它起来吧。
在红帽的图形界面下通过服务管理工具找不到imap的服务,
不知道如何使他的服务停下来啊。

刚刚接触linux操作系统,懂得不多。
希望有经验的人能够指点一二,在下先行谢过。

论坛徽章:
0
2 [报告]
发表于 2003-01-14 15:24 |只看该作者

[求助]在RH7.2下安装IMAP4的过程中出现的问题。

qmail Installation Guide

First, the ‘q’ of qmail was written in lowercase.

We talk about: qmail + OpenLDAP + CourierImap
qmail version 1.03 (tar ball)
OpenLDAP version 2.x (RPM package)
CourierImap version 1.3.8.2 (tar ball)
Ucspi-tcp version 0.88 (RPM package)
Daemontools version 0.76 (RPM package)
All of these working in Redhat Linux 7.2

Ok, let’s go.

·        Prepare software
OpenLDAP:        OpenLDAP*, Libldap* in Redhat Linux 7.2
qmail:                http://cr.yp.to/software/qmail-1.03.tar.gz
LDAP patch:        http://www.nrg4u.com/qmail/qmail-ldap-1.03-20011001a.patch.gz
CourierImap:        http://download.sourceforge.net/courier/courier-imap-1.3.8.2.tar.gz
--- Other tools ---
Ucspi-tcp:        \\Boston ->; root
Daemontools:        \\Boston ->; root
·        Install OpenLDAP
In the Redhat Linux 7.2 CDs, install:
Openldap*
Libldap*
·        Install qmail
rpm -ivh daemontools* ucspi-tcp*
tar -zxvf qmail-1.03.tar.gz
gunzip qmail-ldap-1.03-20011101a.patch.gz
cd qmail-1.03
patch -p1 <../qmail-ldap-1.03-20011101a.patch
------
mkdir /var/qmail
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
vi Makefile
   --uncomment the line MDIRMAKE=-DAUTOMAILDIRMAKE
   --uncomment the line HDIRMAKE=-DAUTOHOMEDIRMAKE
make setup check
./config-fast
--- Edit /var/qmail/control/me, locals, rcpthosts, defaultdomain ---
--- Add abc.com to it ---
cd /var/qmail/alias
touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
chmod 644 /var/qmail/alias/.qmail*
vi /etc/passwd (and add):
   vmail:600:600::/var/qmail/maildirs/:/bin/true
vi /etc/group and add:
   vmail::600
mkdir /var/qmail/maildirs
chown -R vmail:vmail /var/qmail/maildirs
# Link standard sendmail locations to qmail's sendmail wrapper
--- Uninstall sendmail first ---
mv /usr/lib/sendmail /usr/lib/sendmail.sav
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
mv /usr/sbin/sendmail /usr/sbin/sendmail.sav
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
·        Install CourierImap
--- Use non-root to compile CourierImap ---
tar -zxvf courier-imap-*.tar.gz
cd courier-imap-1.3.8.2
./configure --enable-workarounds-for-imap-client-bugs
make
su -c "make install"    (enter root password when prompted)
su - -c "ldconfig"
·        Configure OpenLDAP
--- Locate qmail.schema at qmail source directory ---
cp qmail.schema /etc/openldap/schema
cd /etc/openldap
vi slapd.conf
--- Add this line ---
include         /etc/openldap/schema/qmail.schema
--- Change these setting ---
database ldbm
suffix "dc=abc,dc=com"
rootdn "cn=ldaproot,dc=abc,dc=com"
rootpw {SSHA}sdlkf;ljvflkajf;wiuffasjflj        (use ‘slappasswd –h {SSHA}’ get password)
·        Configure qmail for OpenLDAP
cd /var/qmail/control
- Create the following control files with specified contents in /var/qmail/control:
   ldapmessagestore:
   /var/qmail/maildirs
   ldapgid:
   600
   ldapuid:
   600
   ldapbasedn:
   dc=abc,dc=com
   ldapserver:
   localhost
   ldaplogin:
   cn=ldaproot,dc=abc,dc=com
   ldappassword:
   rootpw
   ldaplocaldelivery:
   0
   ldapmessagestore:
   /var/qmail/maildirs
   ldapdefaultquota:
   200000000S, 20000C
   quotawarning:
   You are about to be over your quota.  Clean your mailbox.
   custombouncetext:
   You've experienced some sort of problem delivering mail to us.
   Please contact us at  for more information.
   dirmaker:
   /var/qmail/bin/custom_dirmaker
   /var/qmail/bin/custom_dirmaker:
   #!/bin/sh
   logger "Creating Maildir/ for $1"
   mkdir -m 700 -p $1
# Execute the following command to make the dirmaker executable
chmod +x /var/qmail/bin/custom_dirmaker
vi /var/qmail/rc
- Now create the qmail start script:
   #!/bin/sh
   # Using splogger to send the log through syslog.
   # Using qmail-local to deliver messages to ./ by default.
   # Don't change this delivery path.  It breaks courier.
   exec env - PATH="/var/qmail/binPATH" qmail-start ./ splogger qmail

·        Configure CourierImap for OpenLDAP
cd /usr/lib/courier-imap/etc
cp authdaemonrc.dist authdaemonrc
cp authldaprc.dist authldaprc
cp imapd.dist imapd
cp imapd-ssl.dist imapd-ssl
vi authdaemonrc
   -- change the authmodulelist line to look like:
   #authmodulelist="authcustom authcram authuserdb authldap authmysql"
   authmodulelist="authldap"
vi authldaprc
   -- I used the following values:
   LDAP_SERVER             localhost
   LDAP_PORT               389
   LDAP_BASEDN             dc=abc,dc=com
   LDAP_BINDDN             cn=ldaproot,dc=abc,dc=com
   LDAP_BINDPW             rootpw
   LDAP_TIMEOUT            5
   LDAP_AUTHBIND           0
   LDAP_MAIL               mail
   LDAP_DOMAIN             Abc.com
   LDAP_GLOB_UID           vmail
   LDAP_GLOB_GID           vmail
   LDAP_HOMEDIR            mailMessageStore
   LDAP_MAILDIR            mailMessageStore
   LDAP_FULLNAME           cn
   LDAP_CRYPTPW            userPassword
vi imapd
   -- modify this one line which tells it to daemonize
   IMAPDSTART=YES

·        Set up qmail init scripts with Daemontools
生成qmailctl 脚本

#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 30 80
# 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
else
echo qmail-send service not running
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd service 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
echo ' qmail-send'
svc -d /service/qmail-send
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 'Sending ALRM signal to qmail-send.'
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
echo '* Sending qmail-send SIGTERM and restarting.'
svc -t /service/qmail-send
echo '* Restarting qmail-smtpd.'
svc -u /service/qmail-smtpd
;;
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 < 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 &amp; restarts it
doqueue -- sends qmail-send ALRM, scheduling queued messages for 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

  此脚本可以通过http://www.lifewithqmail.org/qmailctl-script-dt70获得

  使用vi 生成/var/qmail/bin/qmailctl基本将上面内容放入其中, 然后将其安装在

/etc/init.d
/etc/rc.d/init.d

  执行下面命令,产生链接:

ln -s ../init.d/qmail /etc/rc0.d/K30qmail
ln -s ../init.d/qmail /etc/rc1.d/K30qmail
ln -s ../init.d/qmail /etc/rc2.d/S80qmail
ln -s ../init.d/qmail /etc/rc3.d/S80qmail
ln -s ../init.d/qmail /etc/rc4.d/S80qmail
ln -s ../init.d/qmail /etc/rc5.d/S80qmail
ln -s ../init.d/qmail /etc/rc6.d/K30qmail
ln -s /var/qmail/bin/qmailctl /etc/init.d/qmail

  使得脚本可以执行 qmailctl且进入系统命令中

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

  supervise 基本

  现在产生qmail services目录:

mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
chmod +t /var/qmail/supervise/qmail-send
chmod +t /var/qmail/supervise/qmail-smtpd

  生成/var/qmail/supervise/qmail-send/run 文件:

#!/bin/sh
exec /var/qmail/rc

  生成/var/qmail/supervise/qmail-send/log/run 文件:

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

  生成 /var/qmail/supervise/qmail-smtpd/run 文件:

#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c '$MAXSMTPD'
-u '$QMAILDUID' -g '$NOFILESGID' 0 smtp /var/qmail/bin/qmail-smtpd 2>;&amp;1

  生成concurrencyincoming 控制文件:

echo 20 >; /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming

  生成/var/qmail/supervise/qmail-smtpd/log/run 文件:

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

  使得所生成的脚本可执行:

chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

  建立log 目录:

mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd

  将supervise 链接到/service:

ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

  注: qmail 系统应该自动起来。如果不想此时候启动,执行:

qmailctl stop'

SMTP 访问控制

  允许本地主机通过SMTP发信:

echo '127.:allow,RELAYCLIENT=''' >;>;/etc/tcp.smtp
qmailctl cdb

·        Set up OpenLDAP database
--- Create top ldif file ---
top.ldif:
dn: dc=abc,dc=com
objectclass: top
dn: ou=user,dc=abc,dc=com
objectclass: top
objectclass: organizationalUnit
ou: user
--- Add top ---
ldapadd -x -W -D "cn=ldaproot,dc=abc,dc=com" -f top.ldif
--- Create user ldif file ---
Gary.ldif:
dn: uid=gary,ou=user,dc=abc,dc=com
cn: gary
sn: gary
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: qmailUser
mail: gary@abc.com
userPassword: {SSHA}asdfklhasfjas;ldkfaslfl;asdfkl;sdfj
mailMessageStore: /var/qmail/maildirs/gary/Maildir
uid: gary
--- Add user ---
ldapadd -x -W -D "cn=ldaproot,dc=abc,dc=com" -f top.ldif
·        At last

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-01-14 16:44 |只看该作者

[求助]在RH7.2下安装IMAP4的过程中出现的问题。

能看一下你的IMAP的安装过程吗?

论坛徽章:
0
4 [报告]
发表于 2003-01-16 16:52 |只看该作者

[求助]在RH7.2下安装IMAP4的过程中出现的问题。

[quote]原帖由 "netloafer"]能看一下你的IMAP的安装过程吗?[/quote 发表:


我已经搞定了。谢谢。
项目要求用tcpserver带起来imap的服务,
在一个启动qmail的shell脚本里面有三行tcpserver后面带一些参数其中分别有pop3,smtp和imap4的指令。
但是我参照的安装说明是独立启动imap服务的,
所以它要我把一些文件链接到init.d和r0X.d下面去。
这样每次启动计算机,imap就会启动,占据143端口。

我没怎么接触过unix类的操作系统,所以不知道它那一步是要干嘛。
现在我把那些链接删掉了,就好使了。

论坛徽章:
0
5 [报告]
发表于 2003-01-24 19:12 |只看该作者

[求助]在RH7.2下安装IMAP4的过程中出现的问题。

看到那个脚本觉得特象我写的

果然是你啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP