LINUX-sendmail

 

MAIL 邮件模型
MUA   (message user agent)   邮件用户代理 泛指邮件客户端     常见的如 SENDMAIL QMAIL POSTFIX EXIM 等; Windows Exchange imail 等。  
-- MTA取的信,或者通过POPIMAP把信发到MTA
MTA   (message transfer agent)   邮件传输代理 就是发送服务器
-- 监视MUA的请求 ,找出对方的MTA,把信传到对方MTA服务器,或者把信收到邮件队列
MDA   (message deliver agent)   转发代理 邮件的投递员  
--- 把信最终投递到具体的用户
MAA   接收服务器
---dovecot
 
相关协议:
smtp: 简单邮件传输协议(simple   mail transport   protocol) , 发邮件用的协议,明文传输,基于tcp服务的应用层
应用的端口号:TCP 25
基础使用方法:
telnet 127.0.0.1 25     // 如果连接成功,服务器会返回一个表示通信连接成功的220应答代码,如果telnet不到,就察看25端口有没有打开。  
helo 127.0.0.1     // 向服务器表识发件人的身份,成功会收到 250 应答代码,这一步可以省略。
mail from :[email protected]     //指定发件人,成功就会返回250应答代码.  
rcpt to :yyy@bj.com     // 指定收件人地址 , 成功就会返回 250 应答代码 .  
data     //发送data命令,准备开始传输邮件内容,成功会返回354应答代码,表示准备接收邮件内容,可以在下一行开始输入邮件内容。  
it's test!
.       邮件内容写完后回车并输入 . 结束  
quit   结束,退出。
pop3 imap:收邮件用的协议 明文传输
应用的端口号pop3: TCP 110imap:TCP 143
lmtp: 本地邮件传输协议

sendmail
是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook expressfoxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail
 
sendmail 相关的软件包:
sendmail   //sendmail 服务器程序的安装包 , 默认已安装
m4   // 包括了配置 Sendmail 服务器的必要工具,默认已安装
sendmail-cf   // 包括了重新配置 Sendmail 服务器的必要配置文件
sendmail-doc   s//endmail 服务器说明文档
 
sendmail   中几个比较重要的文件:
sendmail.cf   // 主配置文件,但该文件配置难度很大,一般修改 sendmail.mc   然后通过运行 m4 sendmail.mc > sendmail.cf 来重新生成
local-host-names   // 设置 sendmail 服务器提供邮件服务的域名。
access   // 设置中继的数据库配置文件
/var/log/maillog   // 日志文件

案例
不同地方使用sendmail实现mail的收发

Linux-sendmail_第1张图片

 

北京mail服务器配置:
安装sendmail相关软件:
[root@server ~]# chkconfig --list |grep sendmail         sendmail   默认安装
sendmail         0: 关闭   1: 关闭   2: 启用   3: 启用   4: 启用   5: 启用   6: 关闭
[root@server ~]# service sendmail status
sendmail (pid   3715)   正在运行...
[root@server ~]# netstat -tupln |grep sendmail
tcp         0       0 127.0.0.1:25                 0.0.0.0:*                    LISTEN       3715/sendmail: ace
[root@server ~]# rpm -qa |grep sendmail
sendmail-8.13.8-2.el5        已经安装
[root@server ~]# rpm -qa |grep m4
m4-1.4.5-3.el5.1        已经安装
 
[root@server ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@server ~]# cd /mnt/cdrom/Server
[root@server Server]# ll sendmail*
-r--r--r-- 278 root root 646627 2007-01-18   sendmail-8.13.8-2.el5.i386.rpm
-r--r--r-- 278 root root 318825 2007-01-18   sendmail-cf-8.13.8-2.el5.i386.rpm
-r--r--r-- 327 root root 131258 2007-01-18   sendmail-devel-8.13.8-2.el5.i386.rpm
-r--r--r-- 278 root root 668921 2007-01-18   sendmail-doc-8.13.8-2.el5.i386.rpm
 
 
[root@server Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
 
三个文件需要修改:
 
[root@server Server]# cd /etc/mail
[root@server mail]# vim sendmail.mc   配置监听

 

-- 默认是本机监听25号端口,需要更改才能使非本地用户使用sendmail发送邮件
--Dnl # 是注视文字
--Dnl 是打开可以使用的
-- 末尾dnl 去除空格
[root@server mail]# service sendmail restart
[root@server mail]# vim access      中继文件

Linux-sendmail_第2张图片

 

-- ok 无条件接受, relay 中继, reject是拒绝

 

[root@server mail]# vim local-host-names   域名比对,表示本地域名

 

安装DNS
[root@server Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@server Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
 
[root@server Server]# cd /var/named/chroot/etc
[root@server etc]# cp -p named.caching-nameserver.conf named.conf      拷贝模
板文件
[root@server etc]# vim named.conf

Linux-sendmail_第3张图片

 

[root@server etc]# vim named.rfc1912.zones

Linux-sendmail_第4张图片

 

为了避免垃圾邮件 服务器会反复的进行正向和反向的解析,这样会造成速度很慢 所以还需要设置反向解析

 

[root@server etc]# cd /var/named/chroot/var/named
[root@server named]# cp -p localhost.zone bj.com.db      产生数据库
[root@server named]# vim bj.com.db

Linux-sendmail_第5张图片

 

[root@server named]# vim 192.168.101.db

Linux-sendmail_第6张图片

 

[root@server named]# chkconfig named on      设置开机启动
[root@server named]# service named start
 
[root@server named]# vim /etc/resolv.conf       在邮件服务器上做dns指向

 

[root@server named]# hostname     查看自己的主机名
server.li.com
[root@server named]# vim /etc/sysconfig/network      修改自己的主机名,改成dns
可以解析的名字

 

[root@server named]# vim /etc/hosts   修改原来hosts文件里留的信息

 

[root@server named]# init 6  重启系统

 

 

安装接收服务器:
[root@server ~]# yum list all |grep dov       yum安装,有很强的依赖性
This system is not registered with RHN.
RHN support will be disabled.
dovecot.i386                               1.0.7-7.el5                 rhel-server
[root@server ~]# yum install -y dovecot.i386
[root@server ~]# chkconfig dovecot on      设置开机自动启动
[root@server ~]# service dovecot start
启动   Dovecot Imap                                         [ 确定]
[root@server ~]# netstat -tupln |grep dovecot
tcp         0       0 :::993                       :::*                         LISTEN       5318/dovecot        
tcp          0       0 :::995                       :::*                         LISTEN       5318/dovecot        
tcp         0       0 :::110                       :::*                         LISTEN       5318/dovecot        
tcp         0       0 :::143                        :::*                         LISTEN       5318/
[root@server ~]# grep 995 /etc/services

 

[root@server ~]# grep 993 /etc/services 

 

[root@server ~]# vim /etc/dovecot.conf    只用明文的110143 两个端口

 

 

上海mail服务器配置:(基本同北京,只需将北京服务器配置克隆过来,做如下修改)

[root@server Server]# cd /etc/mail

[root@server mail]# vim access   中继文件

Linux-sendmail_第7张图片

[root@server Server]# vim /var/named/chroot/etc/name.conf

Linux-sendmail_第8张图片

[root@server Server]# vim /var/named/chroot/etc/name.rfc.zones

Linux-sendmail_第9张图片

 

[root@server etc]# cd /var/named/chroot/var/named
[root@server named]# vim sh.com.db

 

Linux-sendmail_第10张图片

[root@server named]# vim /etc/resolv.conf     //dns指向

[root@server named]# vim /etc/sysconfig/network 

[root@server named]# vim /etc/hosts 

 [root@server named]# init 6  重启系统

 

测试:

 
本地sendmail:

Linux-sendmail_第11张图片

异地sendmail:

Linux-sendmail_第12张图片