邮件服务器:
       SMTP :简单邮件传输协议 sample mail transmission protocol
              tcp  25端口
       POP3:邮局协议 Post Office Protocol
              tcp 110端口
       IMAP4 internet邮件访问协议
              tcp 143端口
       MIME:多用户多功能互联网邮件扩展
              二进制转换文本形式
              编码方式:base64
 
MUA:Mail User Agent 邮件用户代理
       基于web页面的mail   outlook oefoxmailthunderbirdevolution
       基于字符界面的mail    mutt
MTA:Mail Transfer Agent 邮件传输代理 即为SMTP Server
       软件: ExchangeLotus Note Domino
             (Sendmail-->Postfix, EximQmail)  -->轻量级
MDA:Mail Delivery Agent 邮件投递代理
       软件:procmailmaildrop
MAA:Mail Access Agent 邮件访问代理 该用户在服务器上没有账号 虚拟用户 取回自己的邮件
       软件:courrier-imapdovecot
MTA MDA 可以不在同一台服务器上
 
SMTP本身没有认证功能
SASL:Simple Authentication Secure Layer 简单认证安全层 协议 提供smtp的认证功能
      软件:sasl2 cryrus-sasl
垃圾邮件过滤:apache spam
 
       软件:
反病毒:clamav
邮件服务器本身没有与垃圾邮件过滤和反病毒软件兼容的功能,需要第三方软件的辅助:邮件呼叫器
邮件呼叫器:mimedefang Mailscanneramavisd-new
 
 
S/MIME 邮件加密
POP3S  邮件下载加密
用户的邮件目录:/var/mail--> /var/spool/mail
邮件查看完会放在用户的家目录的mbox(文件)
发邮件方式:本机发送邮件
       mail -v jing
       echo "how are you" | mail -s "helo" jing
       telnet ip 25 (telnet 192.168.0.73 25)
              HELO 邮件地址(ip或主机名) 建立会话
              MAIL FROM: jing@station73.example.com
              RCPT TO: king@station154.example.com
              DATA 写正文
              SubjectI am jing
              Fromjing@station73.example.com
              Toking@station154.example.com
              how are you
              . 结束
              QUIT 退出
       tail /var/log/maillog 查看日志信息
 
 
不是本机邮件在/etc/hosts 要能解析地址
日志文件 /var/log/maillog
 
mail服务器配置   
组件:sendmail sendmail-cf  m4
配置文件:/etc/mail/sendmail.cf sendmail.mc
邮件访问列表: access  /etc/mail/access
本机域名: /etc/mail/local-host-names
邮件别名: /etc/aliases  ---->转换:newaliases
procmail: sendmail的自带的本地投递代理
默认只向本机提供邮件服务
sendmail向外提供服务:
                     vim /etc/mail/sendmail.mc
                        DAEMON_OPTIONS 中将127.0.0.1修改为0.0.0.0
                     service sendmail restart
sendmail 默认不会给任何主机中继,可以在access中配置允许中继
              vim /etc/mail/access
                Connect:192.168.0  RELAY  允许192.168.0网段通过该主机中继
              service sendmail restart
sendmail负责定义的中继域:
              vim /etc/mail/loacl-host-names 添加
                 example.com  保证该域的MX记录指向到本机的ip
                 126.com
邮件别名:
              vim /etc/aliases
                terra:    jing  发给的terra的邮件都发给jingterra不会收到邮件
别名可以做群发:
                 moket可以不存在:   jing, king, kk
              newaliases 手动装换
              service sendmail restart
 
windows上发邮件:telnet outlook
               telnet 192.168.0.124 25
               helo
               mail from
               rept to
       outlook只能发邮件不能接受 要接受的安装dovecot
 
软件:dovecot---MAA
       让用户接受远程邮件
       提供协议: pop3  imap4  pops  imaps
       配置文件:/etc/dovecot.conf
       端口: 110
 
              配置:vim /etc/dovecot.conf
                     protocols = imap pop3 定义协议
                     service dovecot start
                     netstat -ntlp | grep 110
用户接受邮件:---MUA----OE telnet mutt outlook....
               测试:
                     telnet 192.168.0.124 110
                     USER terra
                     PASS 123456
                     LIST 查看邮件
                     RETR 2 查看第2封邮件
             
                   mutt -f pop://terra@station124.example.com
                       -f 协议
 
实现sendmail向发大邮件的地址伪装:发件人不管地址什么都统一进行规定 
              主机有两个域名可以使用该功能
             
              vim  /etc/mail/sendmail.mc
                MASSQUERADE_AS(`example.com')dnl 开启 统一定义为example.com
                FEATURE(masquerade_envelope)dnl开启 在信封上做地址伪装
                FEATURE(allmasquerade)dnl 添加 所有的都做地址伪装 或者是开启下面功能
                FEATURE(masquerade_entiredomain)dnl
              service sendmail restart
              测试 发件人的地址后缀都是example.com
 
用户向不在本域的主机发邮件即跨邮件服务器发邮件:借助DNS实现--做转发 正反向解析
              192.168.0.0.182 dns  a.com
              192.168.0.181 做邮件服务器
              192.168.1.183 为另外的域b.com
配置邮件服务器及DNS
       192.168.0.182配置:   yum install bind caching-nameserver
                            vim /etc/named.conf
                            添加域
                            zone "a.com" IN {
                            type master;
                            file "a.com.zone";
                            };
                            zone "0.168.192.in-addr,arpa" {
                            type master;
                            file "192.168.0.zone";
                            };
                            zone "b.com" { 转发
                            type flowerd;
                            forwarders { 192.168.1.183; };
                            };
                            vim /var/named/a.com.zone
                                   IN   NS  ns
                                   IN   MX  mail
                            ns      IN   A    192.168.0.182
                            mail    IN   A     192.168.0.182
                            vim /var/named/192.168.0.zone
                                   IN   NS   ns.a.com
                            182     IN   PTR   ns.a.com.
                            182     IN   PTR   mail.a.com
                            chown :named /etc/named.conf  /var/named/a.com.zone  192.168.0.zone
                            service named configtest
                            service named start
                            chkconfig named on
                            hostname mail.a.com
                            vim /etc/hosts
                            192.168.0.182   mail.a.com   mail
                            vim /etc/resolv.conf
                               nameserver   192.168.0.182
                     测试:
                            dig -t  MX a.com 
                            dig  -x 192.168.0.182
                     配置sendmail
                            vim /etc/mail/sendmail.cf
                            127.0.0.1改为0.0.0.0
                            vim /etc/mail/localhost
                               mail.a.com
                               a.com
                            vim /etc/mail/access
                             Connect:192.168.0       RELAY
                            service sendmail restart
       配置192.168.0.181
                            vim /etc/resolv.conf
                              namesever     192.168.0.182
                            telnet mail.a.com  25    发邮件进行测试
                           
时间戳出问题解决方法:配置文件时间戳出问题sendmail.cf 要比sendmail.mc的要靠后
              1、重启主机
              2、修改时间戳: stat sendmail.mc
                            stat sendmail.cf
                            稍微修改一下sendmail.mc vim sendmail.mc
                            stat sendmail.mc