现在创建邮箱。
使用cyradm来创建和删除邮箱,它是Cyrus-IMAP自己带的交互式管理界面,现在的版本是用Perl写的。你也可以直接调用 Cyrus::IMAP::Admin模块创建自己的CGI或脚本来做邮箱管理,可以参考Cyrus::IMAP::Shell模块的程序。
对于非虚拟域邮箱,只需要创建同用户名相同的邮箱(邮件的本地部分)。
对于虚拟域邮箱,为了将虚拟域用户区别开来,我们希望使用用户的邮件全称来做它的邮箱名(其POP3/IMAP的登录名和邮箱名是一样的),但是虽然 Cyrus-IMAP允许你创建带有“@”的邮箱,但是Cyrus-IMAP的deliver不支持邮件的本地部分带有“@”的邮箱,以至于不能正常递 交。我们采用了以下步骤来解决这个问题:
之所以这样做的原因是,通过在cyradm中创建两个邮箱,通知了Cyrus-IMAP系统中存在“地址邮箱”,删除地址邮箱,并将其作为“存 储邮箱”的别名是希望通过它能访问到实际存储邮件的“存储邮箱”。(另外请注意,邮箱名称中的点实际在文件系统中是用“^”代表的)
[root@mail bin]# cyradm --user cyrus localhost IMAP Password: mail.cngnu.org> cm user/cyrus mail.cngnu.org> sq user/cyrus STORAGE 10485760 mail.cngnu.org> cm user/trueuser mail.cngnu.org> sq user/trueuser STORAGE 10485760 mail.cngnu.org> cm user/virtualuser~cngnu.org mail.cngnu.org> cm user/[email protected] mail.cngnu.org> sq user/virtualuser~cngnu.org STORAGE 10485760 mail.cngnu.org> lm user/INBOX (\HasNoChildren) mail.cngnu.org> quit [root@mail bin]# cd /var/spool/imap/user [root@mail user]# ls cyrus trueuser virtualuser~cngnu^org virtualuser@cngnu^org [root@mail user]# rm -rf tester\@cngnu\^org [root@mail user]# ln -s tester~cngnu^org tester@cngnu^org |
如果要删除一个IMAP邮箱,需要先给管理员cyrus授予C(Create)和D(Delete)的权限才可以删除。
[root@mail user]# cyradm --user cyrus localhost IMAP Password: mail.cngnu.org> cm user/testdel mail.cngnu.org> lm user/INBOX (\HasNoChildren) mail.cngnu.org> sam user/testdel cyrus cd mail.cngnu.org> dm user/testdel mail.cngnu.org> lm user/INBOX (\HasNoChildren) mail.cngnu.org> quit [root@mail user]# rm -rf testdel |
再检测POP3和IMAP服务:
[root@mail user]# telnet localhost 110 +OK mail.cngnu.org Cyrus POP3 v2.1.16 server ready USER [email protected] +OK Name is a valid mailbox PASS testpw +OK Maildrop locked and ready QUIT +OK [root@mail bin]# imtest -m login -a [email protected] localhost
|
http://www.horde.org/horde/
http://www.horde.org/imp/3.2.2/
http://www.horde.org/turba/
[root@mail user]# cd /usr/src [root@mail src]# wget ftp://ftp.horde.org/pub/horde/horde-2.2.4.tar.gz [root@mail src]# wget ftp://ftp.horde.org/pub/pear/pear-1.1.tar.gz [root@mail src]# wget ftp://ftp.horde.org/pub/imp/imp-3.2.2.tar.gz [root@mail src]# wget ftp://ftp.horde.org/pub/turba/turba-1.2.1.tar.gz |
IMP对PHP的环境要求较高。所以通常需要升级PHP包,并安装由Horde定制后的PEAR包。
修改/etc/php.ini,将register_globals功能打开。
register_globals = On |
安装PEAR包,在AS3中,它位于/usr/share/pear下:
[root@mail src]# tar zxf /usr/src/pear-1.1.tar.gz [root@mail lib]# cd /usr/share [root@mail lib]# /bin/cp -Rf /usr/src/pear/* pear |
最后重新启动Apache:
[root@mail lib]# /etc/rc.d/init.d/httpd restart |
安装Horde:
[root@mail lib]# cd /var/www/html [root@mail html]# tar zxf /usr/src/horde-2.2.4.tar.gz [root@mail html]# mv horde-2.2.4 horde [root@mail html]# cd horde/scripts/db
[root@mail db]# mysql < mysql_create.sql
[root@mail db]# cd ../../config [root@mail config]# for foo in *.dist; do cp $foo `basename $foo .dist`;done |
然后修改config目录下面的horde.php。
[root@mail config]# vi horde.php |
修改162行:
$conf['prefs']['driver'] = 'none'; |
为:
$conf['prefs']['driver'] = 'sql'; |
修改171行至176行,将其注释去掉并写入horde数据库的口令:
// $conf['prefs']['params']['phptype'] = 'mysql'; |
为:
$conf['prefs']['params']['phptype'] = 'mysql'; |
这里我们没有修改horde数据库的默认的数据库设置,如果在实际使用中,至少应该取一个比较复杂的密码。
再来修改config目录下面的registry.php。
[root@mail config]# vi registry.php |
修改23行至24行,将其注释去掉:
// $this->registry['auth']['login'] = 'imp'; |
为:
$this->registry['auth']['login'] = 'imp'; |
然后修改119、138行激活IMP和Turba:
'status' => 'inactive' |
为:
'status' => 'active' |
最后在浏览器中访问如下URL测试Horde需要的环境是否满足:
http://你的邮件服务器的IP/horde/test.php |
如果发现有红色的提示,可能需要修改你的PHP的安装和配置(参见上一节),然后再重新测试。
安装IMP:
[root@mail config]# cd .. [root@mail horde]# tar zxf /usr/src/imp-3.2.2.tar.gz [root@mail horde]# mv imp-3.2.2 imp [root@mail horde]# cd imp/config [root@mail config]# for foo in *.dist; do cp $foo `basename $foo .dist`;done |
然后修改config目录里面的conf.php:
[root@mail config]# vi conf.php |
修改37行:
$conf['menu']['apps'] = array(); |
为:
$conf['menu']['apps'] = array('turba'); |
修改57行:
$conf['user']['allow_resume_all'] = false; |
为:
$conf['user']['allow_resume_all'] = true; |
修改63行:
$conf['user']['allow_resume_all_in_drafts'] = false; |
为:
$conf['user']['allow_resume_all_in_drafts'] = true; |
然后修改prefs.php:
[root@mail config]# vi prefs.php |
将自动维护功能关闭,修改426、427行:
'value' => 1, |
为:
'value' => 0, |
再注释773行:
'value' => '', |
为:
//'value' => '', |
取消注释774行:
// 'value' => 'localsql', |
为:
'value' => 'localsql', |
最后修改servers.php:
[root@mail config]# vi servers.php |
注释除“cyrus”服务器外的所有服务器配置,然后修改“cyrus”服务器的配置为:
$servers['cyrus'] = array( |
安装Turba:
[root@mail config]# cd ../.. [root@mail horde]# tar zxf /usr/src/turba-1.2.1.tar.gz [root@mail horde]# mv turba-1.2.1 turba [root@mail horde]# cd turba/config [root@mail config]# for foo in *.dist; do cp $foo `basename $foo .dist`;done |
然后修改config目录里面的conf.php:
[root@mail config]# vi conf.php |
修改32行:
$conf['menu']['apps'] = array(); |
为:
$conf['menu']['apps'] = array('imp'); |
然后修改config目录里面的sources.php:
[root@mail config]# vi sources.php |
修改146行:
'password' => '*****'; |
为:
'password' => 'horde'; |
最后,添加turba数据库表:
[root@mail config]# cd ../scripts/drivers [root@mail config]# mysql horde <turba.sql |
最后在浏览器中访问如下URL:
http://你的邮件服务器的IP/horde/ |
输入用户名[email protected]和密码testpw登录(或trueuser)。
可以编写一个启动脚本/etc/rc.d/init.d/mailsys来启动这些进程,这样就不需要单独启动postfix和cyrusd了:
#!/bin/bash # # mailsys This shell script takes care of starting and stopping # Postfix and Cyrus-IMAP. # author : xingyu.wang <[email protected]> 2004/1/18 # # chkconfig: 2345 80 30 # description: Postfix is a Mail Transport Agent, which is the program # that moves mail from one machine to another.Cyrus-IMAP is a Mail # Deliver Agent, which provide POP3 and IMAP4 services for user and # deliver mail to local mailbox. # # processname: mailsys # pidfile: /var/run/mailsys.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/sbin/postfix ] || exit 0 [ -f /usr/cyrus/bin/cyrusd ] || exit 0 RETVAL=0 prog="Mail System" start() { # Start daemons. echo -n $"Starting $prog: " echo -n $"SMTP " /usr/sbin/postfix start > /dev/null 2>&1 & echo -n $"POP3 IMAP4 " /usr/cyrus/bin/cyrusd > /dev/null 2>&1 & RETVAL=$? if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/mailsys success $"$prog start" else failure $"$prog start failure" fi echo return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down $prog: " echo -n $"SMTP " /usr/sbin/postfix stop > /dev/null 2>&1 & echo -n $"POP3 IMAP4 " killproc cyrusd RETVAL=$? if [ $RETVAL -eq 0 ]; then rm -f /var/lock/subsys/mailsys success $"$prog stop" else failure $"$prog stop failure" fi echo return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit $RETVAL |
[root@mail root]# chmod 755 /etc/rc.d/init.d/mailsys [root@mail root]# chkconfig --level 0123456 mailsys on [root@mail root]# chkconfig --level 0123456 sendmail off |
创建邮箱后,测试发信功能:
[root@mail root]# mail [email protected] Subject: test by me this is a test. . CC: [root@mail root]# mailq Mail queue is empty [root@mail root]# tail /var/log/maillog
|
使用mailq来查看邮件队列是否有错误,并查看/var/log/mail/*是否有错误信息。如果一切正常,说明信件已经发送到tester了。
测试收信,先测试POP3:
[root@mail root]# telnet localhost 110 +OK mail.cngnu.org Cyrus POP3 v2.1.16 server ready USER [email protected] +OK Name is a valid mailbox PASS testpw +OK Maildrop locked and ready LIST 1 400 TOP 1 10 Return-Path: <[email protected]> this is a test. . QUIT +OK |
再测试IMAP:
[root@mail root]# imtest -m login -a [email protected] localhost . select inbox . fetch 1:1 (FLAGS BODY[HEADER.FIELDS (DATE FROM)]) ) |
最后测试IMP,在浏览器中访问如下URL:
http://你的邮件服务器的IP/horde/ |
输入用户名[email protected]和密码testpw登录。
本文出自 “dsafsa_技术博客” 博客,转载请与作者联系!