邮件服务器:
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 ,oe,foxmail,thunderbird,evolution
基于字符界面的mail mutt
MTA:Mail Transfer Agent 邮件传输代理 即为SMTP Server
软件: Exchange,Lotus Note Domino,
(Sendmail-->Postfix, Exim,Qmail) -->轻量级
MDA:Mail Delivery Agent 邮件投递代理
软件:procmail,maildrop
MAA:Mail Access Agent 邮件访问代理 该用户在服务器上没有账号 虚拟用户 取回自己的邮件
软件:courrier-imap,dovecot
MTA 和 MDA 可以不在同一台服务器上
SMTP本身没有认证功能
SASL:Simple Authentication Secure Layer 简单认证安全层 协议 提供smtp的认证功能
软件:sasl2 ,cryrus-sasl,
垃圾邮件过滤:apache spam
软件:
反病毒:clamav
邮件服务器本身没有与垃圾邮件过滤和反病毒软件兼容的功能,需要第三方软件的辅助:邮件呼叫器
邮件呼叫器:mimedefang ,Mailscanner,amavisd-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 写正文
Subject:I am jing
From:jing@station73.example.com
To:king@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的邮件都发给jing,terra不会收到邮件
别名可以做群发:
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
转载于:https://blog.51cto.com/caogenyingxiong/525585