postfix与cyrus imap的搭配实例

cyrus imap使用春雨如丝sasl函数库来验证用户的身份,所以,你必须先构建、安装cyrus sasl函数库,然后才可以顺利构建cyrus imap server。此外,cyrus软件至少需要berkeley db 3以上的版本,如果你系统

上的Berkeley DB比第三版还旧,你可能需要全面更新整个系统。在同一个系统上混用不同版本的Berkeley DB,可能会引发难以追查的问题。如果你必须升级DB函数库,建议你重建所有需要用到的Berkeley DB的软件,让系统上的所有软件都使用同版函数库。

为了举例说明,架设我们已经架设好一个能接收example.com网域邮件的postfix server,并以同一台机器来运行Cyrus IMAP server。假设所有邮件用户的账户都已经建在Cyrus SASL的数据库里,但是这台机器上仍有少数几个shell账户。虽然这些账户不会被用来收信,但是我们希望仍然能够使用.foward文件与别名文件, 以便系统产生给root的邮件以及外界寄给postmaster别名的邮件,都可以被转寄到正确的地方。

很显然的,我们不能直接将所有邮件都直接交付给Cyrus IMAP server(所以应该排除local_transport),因为我们扔需要local MDA的别名文件与.forward文件的展开功能(所以只剩下mailbox_transport与fallback_transport可以选择)。 但由于shell账户不是用来收信的,所以,最理想的选择是mailbox_transport。我们应该将此参数指向lmtp MDA,并确定master.cf里的lmtp服务能将邮件投递给Cyrus IMAP server。以下是我们的设定步骤:

1、将Cyrus IMAP安装到系统上。检查Cyrus的配置文件(通常是/etc/cyrus.conf),确定它的服务渠道是Unix-domain socket,并记下socket文件的位置。你应该会看到类似下面这样的内容:

SERVICES {

# add or remove based on preferences

imap cmd="imapd" listen="imap" prefork=0

pop3 cmd="pop3d" listen="pop3" prefork=0

# LMTP is required for delivery

lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0

}

其中,“lmtpunix”那一行就是socket文件的正确位置。

2、依照Cyrus随附文件的指示,在服务器上设置一个供Cyrus IMAP server使用的系统账户。

3、检查/etc/postfix/master.cf的内容,确定lmtp服务的配置符合你的系统环境。一般而言,你应该像这样设定:

lmtp unix - - n - - lmtp

如果你的postfix是以默认模式安装的,上面这一行应该已经出现在你的/etc/postfix/master.cf配置文件里了。要注意的是第五 栏,它代表lmtp MDA是否要处于chroot环境下。在本例中,由于它必须要能够读取Cyrus IMAP server的socket文件,所以此栏设定为n

4、检查main.cf,确定mydestination参数所列的网域包含了你要的收信网域。你可以直接列出。

5、要求mailbox_transport使用master.cf所指定的lmtp服务,并指向你先前记下的Cyrus IMAP socket文件

6、重新加载postfix

通过上文我们知道了一些postfix 与pop/imap的知识,希望对大家有所帮助!

  • 如何安装PostfixAdmin
  • Postfix的邮件队列管理
  • Postfix中的地址操作大全
  • Sendmail 配置E-Mail服务器开启SMTP、POP端口
  • 分析PHP函数array_pop()的具体使用方式
  • Perl Pop和Perl Push操作异同之处
  • Courier imap 安装指南
  • Thunderbird设置IMAP接收gmail过程
  • COURIER-imap安装并创建rpm环境

 


相关内容