这个是讨论使用了虚拟邮件用户后,主机上的本地用户的邮件收发问题。
不同的MTA,不同的imap/pop,不同的WEB界面对处理虚拟用户和主机本地用户,有不同的做法。我只是使用了postfix,而且只使用了本地投递代理处理本地用户,虚拟用户用虚拟用户投递代理处理这种方法。当然,做虚拟用户还有别的办法,日后有时间再考虑考虑。imap/pop用courier-imap。虚拟用户信息在mysql。还用了pam-mysql做pam。
在邮件系统中使用虚拟用户后,需要考虑如何处理邮件服务器所在主机的本地用户和件服务器自身的虚拟用户之间的关系。
一、分析本地用户和虚拟用户对邮件的需求情况。
本地用户可以分为两类。一是系统用户,比如bin、daemon、mail、news、postmaster等等。另一类是普通用户。
这两类用户对邮件的需求是不一样的。系统用户一般是接收来自程序的错误或日志等信息的邮件。由于系统用户没有自身的邮箱,通常是通过系统的别名表将邮件转发到一个管理员账号上。一般情况下这个管理员账号是本地上的一个用户账号,如root、local。普通用户可能有两种的邮件需求,能够在本地发送或是阅读邮件,也能够在其他计算机上使用邮件客户端利用邮件主机上的smtp/imap/pop服务进行邮件收发。
虚拟用户的邮件需求,就是通过smtp/imap/pop进行邮件收发,不会涉及在本地的发送阅读问题。
二、本地用户和虚拟用户关系主要有两个问题
1、用户身份验证问题。本地用户和虚拟用户的用户信息保存位置不同。邮件主机的本地用户信息保存在/etc/passwd中,而虚拟用户信息则保存在数据库文件、数据库服务器或目录服务器等。在进行口令验证时(SMTP/IMAP/POP验证),如何从两个不同的位置取得用户名和口令这是一个问题;第二、本地用户和虚拟用户的邮件路由问题,即本地用户和虚拟用户的邮件投递问题。 Continue reading »