邮件服务Mail Service

一、邮件服务器是基于TCP/IP的协议基础上来工作的。

基于TCP/IP的邮件传输协议有以下几种:

1、smtpsimple mail transmission protocol,简单邮件传输协议:工作于25/tcp端口,smtpinternet较早的一种电子邮件传输协议标准,用于不同主机或用户间的信息传输。

2、Pop3post office procotol,邮局协议;工作于110/tcp端口,pop3的功能要比smtp大得多,最主要是可以提供用户登录服务器下载邮件,为用户提供邮件的存储功能。

3、Imap4internet mail adccess protocol,互联网邮件访问协议;工作于143/tcp端口,它是pop3的替代品,增加了一些功能。

1搭建邮件服务器不仅要有客户端和服务器端程序,还要具备以下几个服务器代理程序:

MUA:邮件用户代理,帮用户取得邮件

MTA:邮件传输代理,为用户传输邮件

MDA:邮件投递代理,为用户投递保存邮件

MRA:邮件远程下载代理,让用户可以登录服务器下载邮件

webmail:为用户提供邮件动态界面的程序,

2邮件传输工作流程:邮件在传输工作时,并不是自己去寻找收件人的服务器地址,而是由本地邮件服务器代其寻找收件人所在域的地址,若是本域内的主机,直接代其发送,若是其它域内的主机,则本地邮件服务器就充当客户端向收件人所在域邮件服务器传输邮件,再由其邮件服务器帮其接收邮件并投递。所以一台邮件服务器要具备所有的代理功能才能更好的实现邮件传输功能。

二、基于认证机制和relay中继的邮件传输协议

   以上所述的只是单单的完成邮件传输的协议,邮件都是明文的,实际网络中,我们提交邮件和接受邮件其他人是看不到的,这是因为linux中提供了以上几种协议基于用户认证的协议。

(1)SASLSimple Authentication Secure Layer 简单认证安全层,可称为认证框架。和之前所述的iptables相似,其本身并不具备认证的功能,只是提供规则来对邮件进行认证的。而sasl依然不能满足我们的要求,而后又基于sasl的基础上研发了courier-authlib的认证程序,它可以支持将用户账号存放于ldap服务或mysql数据库中

这里所选用基于SASL的软件程序是cyrus-sasl,安装后会生成进程saslauthd,要认证就必须要有认证所需的库,courier-authlib提供了这个功能,它是基于sasl研发的,可以支持账号存放于自身的ldap中也可存放于mysql数据库中。

(2)有了协议和运行程序,还要可以基于web登录发收邮件;

Extmail是实现webmail的一款程序,为postfix提供了邮件动态界面。

    (3)结合各种认证机制和程序,邮件传输的流程图如下所示:

 

 

后面将提供邮件服务器的搭建,为了满足更多需求,进行编译安装无疑是最好的选择。这里提供基于:Postfix+Sasl+Dovecot+courier-authlib+Extmail+Extman几个安装程序来构建邮件服务器。

Postfix:邮件传输工具

Sasl:简单的认证框架程序

Dovecot:为用户提供下载邮件的安装程序

courier-authlib:基于库认证的一款程序

Extmail:为用户提供邮件web动态界面

Extman:为用户提供注册等服务的程序