电子邮件基本概念:
MUA(Mail User Agent)接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信;
MTA(Mail Transfer Agent) 通过SMTP协议发送、转发邮件;
MDA(Mail Deliver Agent)将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描;将接收下来的邮件存放到对应用户邮筒当中的程序。通过分析MTA所收到邮件的表头或内容,来判断此邮件是属于哪个用户,然后决定将此邮件投递给哪个用户的邮筒里
MRA(Mail Receive Agent)负责实现IMAP与POP3协议,与MUA进行交互;通过MRA服务器提供的邮政服务协议(POP)来接收自己的邮件(zhud)
SMTP(Simple Mail Transfer Protocol)传输发送邮件所使用的标准协议;
IMAP(Internet Message Access Protocol)接收邮件使用的标准协议之一;
POP3(Post Office Protocol 3) 接收邮件使用的标准协议之一。
SPF(Sender Policy Framework)发信者策略架构,SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。
按照SPF的格式在DNS记录中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。SPF是跟DNS相关的一项技术,它的内容写在DNS的txt类型的记录里面。mx记录的作用是给寄信者指明某个域名的邮件服务器有哪些。SPF的作用跟mx相反,它向收信者表明,哪些邮件服务器是经过某个域名认可会发送邮件的。
邮件服务器基本都有MTA,MDA,MRA 组成。
MRA与MUA交互,将server上的邮件通过IMAP、POP3协议送给client端(加密用IMAPS、POP3s)
常用的MUA有:outlook、thunderbird、Mac Mail、mutt;
常用的MTA服务有:sendmail、postfix;
常用的MDA有:procmail、dropmail;
常用的MRA有:dovecot、Cyrus-IMAP。
邮件收发过程:
开始,用邮件用户代理(MUA)创建了一封电子邮件,邮件创建后被送到了该用户的邮件传输代理(MTA)——传送过程使用的是SMTP协议。然后MTA检查该邮件的收信人,向DNS服务器查询接收方MTA对应的域名,然后将邮件发送至接收方MTA——使用的仍然是SMTP协议。这时,邮件已经从远程的用户工作站发送到了他的ISP的邮件服务器,并且转发到了您的域中。
然而,邮件在传输过程中很有可能被转移到另外一个MTA,但最终会有某个MTA接管这封邮件,并且负责投递。这时,MTA会将邮件传递给某个邮件投递代理(MDA),MDA的主要作用就是将邮件保存到本地磁盘,有些MDA也可以完成其他功能,比如邮件过滤或将邮件直接投递到子文件夹。需要注意的是,完成将邮件存放在服务器上这个功能的是MDA。
最后,查收邮件。运行MUA,您可以使用IMAP协议或POP3协议来向邮件服务器查询您的邮件。邮件服务器会先确认您的身份,然后从邮件存储区检索邮件列表,并将列表返回给MUA。现在您就可以阅读邮件了。
Postfix(以下配置在内网范围访问)
Postfix之所以流行是因为其性能和安全性。它支持邮件过滤,称之为milter。milter的功能是允许邮件先经过防病毒和防垃圾邮件的软件扫描,然后再发送到Postfix。经过标准的配置,Postfix能够在较少的系统资源下运行。与其它MTA一样,Postfix有一个主要的配置文件(main.cf)。Postfix的每种配置都是基于表来驱动的,它可以转换成任何关系型数据库或文本文件。它还使用了Perl兼容的正则表达式库。与其它MTA相比,安装Postfix相对复杂一些。它支持虚拟邮箱和虚拟域。postfix在性能上大约比sendmail*倍。
安装
#yum install -y postfix
查看sendmial
#rpm -qa | grep sendmail(在rhel6.4里没有)
#rpm -qa | grep sendmail | xargs rpm -e(若存在,删除)
修改MTA(默认邮件传输代理)
#alternatives –config mta
更改配置主配置文件
#vim /etc/postfix/main.cf
myhostname = test.example.com #主机名
mydomain = example.com #域名
myorigin = $mydomain #送件来源主机名
inet_interfaces = all #监听所有地址来的服务,不只是127.0.0.1
inet_protocols = all #支持IPv6
mydestination = $myhostname, localhost.$mydomain, localhost #MDA的目的地,能够收信的主机地址。与mail to相对。如果DNS中配了MX,则要把MX内容填在这。
mynetworks = 127.0.0.0/8, 192.168.173.0/24
#受信的network。只有来自这些网络的邮件才帮忙Relay,从来源IP的角度过滤
relay_domains = $mydestination #MTA的目的地,通常为下游Mail地址。从来源域名的角度过滤
mail_spool_directory /var/spool/mail/
重启服务
#service postfix restart
#chkconfig postfix on
如果需要邮件转发(发给user1的都发给user2)
#vim /etc/aliases
#加入一行
user1: user2
#postalias /etc/aliases
dovecot
Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。
POP / IMAP 是 MUA 从邮件服务器中读取邮件时使用的协议。其中,与 POP3 是从邮件服务器中下载邮件存起来,IMAP4 则是将邮件留在服务器端直接对邮件进行管理、操作。
安装
#yum install -y dovecot
更改配置
#vim /etc/dovecot/dovecot.conf
# 去掉下面一行前面的注释
# protocols =imap pop3 lmtp
重启服务
#service dovecot restart
#chkconfig dovecot on
测试
#echo “this is a test” | mail -s “to user2 not user1” user1@test.example.com
#cat /var/spool/mail/user1
#cat /var/spool/mail/user2