您的位置:首页 > 大数据 > 人工智能

Linux Postfix 全面安装指导手册之五安装 Courier-imap与Maildrop

2012-02-22 14:58 337 查看
[align=left](1)安装courier-imap[/align]

[align=left][root@mail1~]# cd[/align]
[align=left][root@mail1~]# tar jxvf courier-imap-4.5.0.tar.bz2[/align]
[align=left][root@mail1~]# cd courier-imap-4.5.0[/align]
[align=left] [root@mail1 urier-imap-4.5.0]#./configure --prefix=/usr/local/imap --with-redhat [/align]
[align=left]--disable-root-check --enable-unicode=utf-8,iso-8859-1,gb2312,gbk,gb18030[/align]
[align=left]--with-trashquota --with-dirsync --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-includes=/usr/local/mysql/include/mysql/ --with-authmysql --with-authmysql=yes[/align]
[align=left][root@mail1courier-imap-4.1.3]# make[/align]
[align=left][root@mail1courier-imap-4.1.3]# make install[/align]
[align=left][root@mail1courier-imap-4.1.3]# make install-configure[/align]
[align=left](2)修改配置文件/usr/local/imap/etc/pop3d及/usr/local/imap/etc/imapd。把/usr/local/imap/etc/pop3d 文件的行"POP3DSTART=NO"改成"POP3DSTART=YES",再依照这个形式把文件 /usr/local/imap/etc/imapd的行"IMAPDSTART=NO"改成"IMAPDSTART=YES"即可。[/align]
[align=left](3)复制文件 courier-imap.sysvinit到目录/usr/local/imap/sbin,以便于启动imap的守护进程。[/align]
[align=left][root@mail1courier-imap-4.1.3]# cp courier-imap.sysvinit /usr/local/imap/sbin/imapd[/align]
[align=left](4)测试imap服务。[/align]
[root@mail1 courier-imap-4.1.3]# /usr/local/imap/sbin/imapd start

Starting Courier-IMAP server: imap pop3
[align=left]5> 使用 POP3 over ssl[/align]
[align=left]1)进入目录 /usr/local/imap/share 修改文件mkpop3dcert,将其有效期改成365000 (默认值是 365),修改后的行为:[/align]
[align=left]Usr/bin/openssl req –new –x509 –days 36500 –nodes \[/align]
[align=left] -config /usr/local/imap/etc/pop3d.conf –out[/align]
[align=left]/usr/local/imap/share/pop3d.pem –keyout[/align]
[align=left]/usr/local/imap/share/pop3d.pem || cleanup[/align]
[align=left]2)执行命令/usr/local/imap/share/mkpop3dcert.在同一目录生成所需的文件 pop3d.pem[/align]
[align=left]3)执行命令/usr/local/imap/libexec/pop3d-ssl.rc start, 启动pop3-ssl[/align]
[align=left]4)然后用netstan –anp | grep 995检查是否在监听。正常情况下会有以下的输出:[/align]
[align=left]Tcp 0 0 :::995 :::*[/align]
[align=left] LISTEN 2412/couriertcpd[/align]
[align=left]在postfix所有组件都正常工作以后。把客户端的POP端口由110修改成995,然后收一下,这样就能准确无误地验证SSL功能是否正常工作了。[/align]
[align=left]◆安装courier-maildrop[/align]
[align=left]Maiidrop的作用是本地投递,即把收到的邮件移动到相应的用户目录。在前面配置postfix的时候,我们已经把与maildrop相关的东西写进文件/etc/postfix/master.cf了,因此这里就不再叙述。前面的步骤我们也提到过pcre 这个软件,它是安装maildrop所必须的,所以需要先安装这个软件(如果系统不存在这个软件的话)。[/align]

[align=left][root@mail1 courier-imap-4.1.3]# cd[/align]
[align=left][root@mail1 courier-imap-4.1.3]# tar jxvf pcre-7.2.tar.bz2[/align]
[align=left][root@mail1 courier-imap-4.1.3]# cd pcre-7.2[/align]
[align=left][root@mail1 courier-imap-4.1.3]# ./configure[/align]
[align=left][root@mail1 courier-imap-4.1.3]# make[/align]
[align=left][root@mail1 courier-imap-4.1.3]# make install[/align]
[align=left]//安装pcre应该是非常容易的事情,片刻之间就可搞定,接下来安装maildrop.在执行配置过程中,需要很多选项,不要疏漏。[/align]
[align=left][root@mail1 pcre-7.2]# cd[/align]
[align=left][root@mail1 pcre-7.2]# tar jxvf maildrop-2.5.0.tar.bz2[/align]
[align=left][root@mail1 pcre-7.2]# cd maildrop-2.5.0[/align]
[align=left][root@mail1 maildrop-2.5.0]#[/align]
[align=left] [/align]

首先将courier-authlib的头文件及库文件链接至/usr目录(编译maildrop时会到此目录下找此些相关的文件):

ln -sv /usr/local/authlib/bin/courierauthconfig /usr/bin

ln -sv /usr/local/authlib/include/* /usr/include
[align=left] [/align]
[align=left][root@mail1 maildrop-2.5.0]# ./configure --prefix=/usr/local/maildrop --enable-[/align]

[align=left]sendmail=/usr/sbin/sendmail --enable-trusted-users='root vmail' --enable-syslog=1 [/align]
[align=left]--enable-maildirquota --enable-maildrop-uid=1001 --enable-maildrop-gid=1001 --with[/align]
[align=left]-trashquota --with-dirsync[/align]
[align=left][root@mail1maildrop-2.0.4]# make[/align]
[align=left][root@mail1maildrop-2.0.4]# make install[/align]
[align=left][root@mail1maildrop-2.0.4]# cp /usr/local/maildrop/bin/maildrop /usr/bin[/align]
[align=left]下面的命令简单验证maildrop[/align]

[align=left][root@mail1~]# maildrop v[/align]
[align=left]maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.[/align]
[align=left]GDBM extensions enabled.[/align]
[align=left]Courier Authentication Library extension enabled.[/align]
[align=left]Maildir quota extension enabled.[/align]
[align=left]This program is distributed under the terms of the GNU General Public[/align]
[align=left]License. See COPYING for additional information.[/align]
[align=left]输出内容一定要有"Courier Authentication Library extension enabled"这一行。如果没有这个输出,那是非常不幸的事情了,返回去挨个排错吧。那么这个"Courier Authentication Library extension enabled"是怎么一回事呢?这表明maildrop已经和前面我们安装配置的SASL和courier-authlib紧密结合在一起了。[/align]
[align=left]知道maildrop把邮件移动到哪个用户目录还是非常有必要的,这个操作就是maildrop的日志记录。这里我们创建一个新文件/etc/maildroprc,这个文件就2行内容:[/align]

[align=left][root@mail1mailbox]# more /etc/maildroprc[/align]
[align=left]logfile "/var/mailbox/maildrop.log" [/align]
[align=left]to "$HOME/$DEFAULT" 或者 to "$HOME/Maildir" [/align]
的信,

[align=left]很可惜maidrop没有创建和删除邮件用户目录的能力,在配置postfixadmin时,我们提到需要使用2个shell脚本 /usr/sbin/maildirdel.sh及/usr/sbin/maildirmake.sh,这2个脚本的作用就是用来弥补maildrop不能创建/删除目录这个缺陷的。[/align]

[align=left][root@mail1 ~]# more /usr/sbin/maildirmake.sh[/align]
[align=left]#!/bin/bash[/align]
[align=left]set -e[/align]
[align=left]if [ ! -d /var/mailbox/$1 ][/align]
[align=left]then[/align]
[align=left]mkdir /var/mailbox/$1[/align]
[align=left]fi [/align]
[align=left]chown -R vmail:vmail /var/mailbox/$1[/align]
[align=left]cd "/var/mailbox/$1"[/align]
[align=left]/usr/local/imap/bin/maildirmake $2[/align]
[align=left]mkdir /var/mailbox/$1/$2/Maildir[/align]
[align=left]chown -R vmail:vmail /var/mailbox/$1/$2[/align]
[align=left] [/align]
[align=left][root@mail1 ~]# more /usr/sbin/maildirdel.sh[/align]
[align=left]#!/bin/bash[/align]
[align=left]rm -rf /var/mailbox/$1/$2[/align]
[align=left]这2个脚本由web调用,而web(apache)的执行用户为vmail,出于安全考虑,我们给vmail用户的权限非常有限,为了保证这2个 shell脚本能正常执行,需要使用sudo这个工具来完成这个任务。尽管可以使用vi这样的编辑器来修改/etc/sudoers这个配置文件,但还是不及visudo可靠,因为visudo可以对修改的内容做语法检查,如果更改不正确,保存文件是会给出提示。把行"vmail ALL = NOPASSWD: /usr/sbin/maildirmake.sh , /usr/sbin/maildirdel.sh"追加到文件末尾即可![/align]
[align=left]有的时候,在postfixadmin里创建新的邮件帐号,帐号倒是创建成功了,却并没有在指定的位置生成相应的虚拟用户目录,从网上收集的信息来看,这个问题似乎很普遍,我本人也被这个问题困扰过--以vmail 用户手动执行sudo /usr/sbin/maildirdel.sh就能创建目录,用web方式就是不行-实验多次才找出原因,原来是/etc/sudoers里需要把 "Defaults requiretty"这行注释掉。有人可能要问,你怎么知道要这样做呢?答:我是通过看apache日志知道要这样干的。[/align]
安装创建邮件存储目录[root@mail1 ~]# mkdir -p /var/mailbox/mail.sery.com/postmaster

[root@mail1 ~]# maildirmake /var/mailbox/mail.sery.com /Maildir

[root@mail1 ~]# chown -R vmail:vmail /var/mailbox
[align=left] [/align]
[align=left]调式POSTFIX[/align]
[align=left] [/align]
[root@mail1 postfixadmin]# perl -e 'use MIME::Base64;print encode_base64("ggggg\@mail.sery.com")'

Z2dnZ2dAbWFpbC5zZXJ5LmNvbQ==

[root@mail1 postfixadmin]# perl -e 'use MIME::Base64;print encode_base64("123456)'

MTIzNDU2

[root@mail1 postfixadmin]# telnet 127.0.0.1 25

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

220 mail1.mail.sery.com ESMTP "Version not Available"

ehlo mail.sery.com

250-mail1.mail.sery.com

250-PIPELINING

250-SIZE 14336000

250-VRFY

250-ETRN

250-AUTH PLAIN LOGIN

250-AUTH=PLAIN LOGIN

250-ENHANCEDSTATUSCODES

250-8BITMIME

250 DSN

auth login

334 VXNlcm5hbWU6

Z2dnZ2dAbWFpbC5zZXJ5LmNvbQ==

334 UGFzc3dvcmQ6

MTIzNDU2

235 2.0.0 Authentication successful

quit

221 2.0.0 Bye

Connection closed by foreign host.

[root@mail1 postfixadmin]#
[align=left] [/align]
[root@mail1 postfixadmin]# telnet 127.0.0.1 110

Trying 127.0.0.1...

Connected to localhost.localdomain (127.0.0.1).

Escape character is '^]'.

+OK Hello there.

user ggggg

+OK Password required.

pass 123456

+OK logged in.

quit

+OK Bye-bye.

Connection closed by foreign host.
[align=left] [/align]
[root@mail1 postfixadmin]# /usr/local/authlib/sbin/authtest -s login ggggg@mail.sery.com 123456

Authentication succeeded.
Authenticated: ggggg@mail.sery.com (uid 1001, gid 1001)

Home Directory: /var/mailbox/

Maildir: /var/mailbox/mail.sery.com/ggggg/

Quota: 0S

Encrypted Password: $1$b52655bb$pKOrEujA0eZnhBAuunfhG0

Cleartext Password: 123456

Options: (none)
[align=left] [/align]
[align=left]OK 测试SASL 与POP3 SMTP 成功了[/align]
[align=left] [/align]
[align=left]认所有服务在系统启动后启动起来[/align]
[root@mail1 postfixadmin]# cat /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local

######################################

/usr/local/apache/bin/apachectl start

/usr/local/mysql/bin/mysqld_safe --user=mysql &

/usr/local/authlib/sbin/authdaemond start

/usr/local/sbin/saslauthd -a shadow pam

/usr/local/authlib/sbin/courierlogger -pid=/usr/local/authlib/var/spool/authdaemon/pid -start /usr/local/authlib/libexec/courier-authlib/authdaemond

/usr/local/imap/sbin/imapd start

/usr/local/imap/libexec/pop3d-ssl.rc start

本文出自 “IT” 博客,请务必保留此出处http://benly.blog.51cto.com/460663/786751
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: