MUA(Mailer User Agent, 邮件用户代理程序),主要用于帮助用户发送和收取电子邮件。如outlook、foxmail等都属于MUA。
MTA(Mail Transfer Agent,邮件传送代理程序) 即通常说的邮件服务器,用来监控以及传送电子邮件;
smtp(simple mail transfer protocol),即简单mail传输协议,为用户提供高效、可靠的邮件传输,监听25号端口,是一个请求/响应 协议,用于接收用户的mail请求,并与远程mail服务器建立起smtp连接。smtp有一个重要特点,即能够接力传送邮件,让邮件通过不同网络上的主机接力式地传送。工作分两种情况 :一是电子邮件从客户机传送到服务器;二是电子邮件从一个服务器传送到另一个服务器。
pop3 (post office protocol )邮局协议,使用端口号110,用于电子邮件的接收,目前常用的是POP3。
pop3采用客户端/服务器工作模式;首先,客户端软件与pop3服务器建立TCP连接,然后pop3协议会确认客户机提供的用户名与密码,确认成功后便转入处理状态,这时用户可接收或者删除自己的邮件,之后退出系统转入更析状态,从服务器端删除用户标记为“删除”的邮件 。
#### IMAP4
IMAP (internet message access protocol),通过internet获取信息的一种协议,也可像pop提供方便的下载邮件服务,实现离线阅读功能。IMAP还提供了一种摘要浏览功能,让用户可以在阅读完邮件的主题、发件从、大小和到时时间等信息后再决定是否下载。
IMAP本身是一种邮箱访问协议,可用来管理在客户端服务器上的邮箱;POP3通过将邮件下载到本地以供用户查看,而IMAP的邮件却是保留在服务器上的。IMAP这一特点和webmail相似的,但是比webmail相比,更高效、安全及可以离线阅读等优点。
在电子邮件协议中,web mail是最热门的。但实质上,web mail并不是一种协议,而是一种web 支持插件。专门针对安装在服务器上的邮件程序,实现了直接通过浏览器查收、阅读和发送邮件。
MUA(Mail User Agent 邮件用户代理人)主要用于将用户的邮件发送到邮件主机上或者将用户的邮件从邮件主机上接收下来。像foxmail、outlook等都是MUA
MUA用于将用户的邮件发送到邮件主机上,如果邮件主机能将这封信邮寄出去,那它就是一台MTA(Mail transfer agent 邮件传输代理)。MTA一般是指邮件服务器,其代表有sendmail,postfix、qmail以及windows下的exchange等。
严格来讲,MTA只是具备SMTP协议的主机,但实际上现在的MTA基本上都包括了邮件发送、接收、转递等方面功能 。
MDA (mail delivery agent 邮件转发代理)分析MTA处理的邮件中的表头或者其他数据,以决定邮件的去向。
Smtp(simple mail transfer protocol 简单文件传输协议)用于发送方的邮件服务器发送邮件到接收方的邮件服务器,是internet电子邮件应用的核心。sendmail程序为linux提供了支持smtp连接所需的服务。
POP3(post office protocol 3)是TCP/IP协议簇中的一员,规定了如何将个人计算机连接到internet的邮件服务器,以及如何下载电子 邮件的电子协议,端口号110. 其有3个工作阶段: 特许阶段,用户代理以明文形式发送用户名和口令以鉴别用户;在事务处理阶段,用户代理取回报文并可以对邮件进行操作,如增加或取消报文删除标记。更新阶段,即客户机发出了quit命令后,结束该pop3会话并删除那些被标记删除的报文。
postfix安装完成之后,还需要进行一些特定的设置,才能实现为特定的域收发邮件功能。postfix的配置文件位于/etc/postfix目录,主要包括main.conf、master.cf、access及aliases几个部分。
sendmail默认只监听本地127.0.0.1端口的邮件收发,postfix也是如此,要使其成为邮件服务器,必须使期能够监听其他客户端的连接请求才能实现。
1 语法规则
在postfix主配置文件main.cf中,用来控制postfix运行行为的参数通常都是以类似变量的形式存在的。比如 使用如下语句设置postfix主机名称
myhosthame = maillinux.localdomain.tst
另postfix变量设置的等号两边需要分别插入空格字符,若某变量有两个以上的设置值,必须用逗号或者空格符隔开。
2 打开postfix的网络发送邮件支持
默认,“intet_interfaces”参数值为“localhost”,也即postfix只监听本机的发信需求,只能在本地邮件主机寄信。若打开网络发送邮件支持,一般开放所有的网络接口,即设置“inet_interfaces”的值为“all”,在“inet_interfaces=localhost”前插入“#”把“inet_interfaces=all”前的“#”去掉,
inet_interfaces = all
#inet_interfaces = localhost
若服务器有多个网络接口,但又不希望开放全部的接口,可使用主机名指定需要开放的接口。
3 设置运行postfix服务的邮件主机名和域名
myhostname参数指定运行postfix服务的邮件主机名称。“mydomain”参数指定了该主机的域名称。若不需要在一台计算机上运行多个主机,这两个参数一般不需要修改。默认下,“myhostname”的值会被postfix自动删除第一部分,并将其余部分作为“mydoamin”的值 。
myhostname = host.domain.tld
mydomain = domain.tld
4 设置本机寄出的邮件所使用的域名或主机名称
当前邮件主机寄出所有邮件的邮件头“mail from”的地址是由“myorigin”参数设置的。
myorigin = $myhostname
5 设置可转发邮件网络
默认配置,postfix只允许转发本地网络的邮件,但可使用mynetworks或者mynetworks-style参数授权其他的网络。
利用虚拟别名域能够实现群组邮递的功能,将发送给虚拟域的邮件实际投到真实域的用户邮箱中。指定一个虚拟邮件地址,当用户给这个邮件地址发送邮件时,邮件服务器会自动将邮件转发到真实域中的一组用户的邮箱里。虚拟域可能是不存在的域,真实域可能是本地域(main.cf文档中的mydestination参数指定的域)、远程域或者是internet域。实际上,虚拟域是真实域的一个别名,通过一个虚拟别名表,实现了虚拟域的邮件地址到真实域的邮件地址的重定向。
第1步 修改主配置文件/etc/postfix/main.cf
virtual_alias_domains = csoftz.cn,localdomain.tst
virtual_alias_maps = hash:/etc/postfix/virtual_
第2步 编辑配置文件/etc/postfix/virtual_domains,定义如下语句
@csoftz.cn @localdomain.tst //表示投递到csoftz.cn域的邮件会被发送到localdomain.tst
[email protected] toplinux // 发送到[email protected]的邮件,会转送到本地用户toplinux。
第3步 以上完成之后,需执行以下命令,方可生效。
postmap /etc/postfix/virtual_domains
postfix reload
用户别名是通过别名表在系统范围内实现别名邮件地址到真实用户邮件地址的重定向。使用用户别名最重要的功能是实现群组邮递,通过用户别名可以将发送给某个别名邮件地址的邮件转发到多个真实的用户邮箱中。
第1步 修改配置文件,确认包含下列语句
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
第2步 编辑文件/etc/postfix/virtual_aliases,定义语句
team1: user1,user2,user3,user4 //说明发送给team1的邮件,都会自动发给用户user1、user2、user3及user4
team2: :include: /etc/mail/team2user // 发送给team2的邮件,都会自动转发给/etc/mail/team2user文件中指定的用户
toplinux: lu //tplinux是Lu的别名
newuser: lu, [email protected] //newuser是lu和[email protected]的别名。
另:team2user文件内容及格式如下:
user21,
user22,
user23,
user24
斜杠只是实现分行,格式也可以如下
user21,user22,user23,user24
第3步,修改配置之后,执行命令,使配置生效
postalias /etc/postfix/virtual_aliases
posffix reload
通过SMTP认证,只允许通过认证的用户发送邮件。cryus SASL(赛勒斯简单认证和安全层)是为应用程序提供认证的函数库,而应用程序通过函数库所提供的功能定义认证方式,让SASL通过与邮件服务器主机的沟通来实现认证功能。