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 :abc@bj.com  
 
//指定发件人,成功就会返回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的收发

 

北京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
  
 
中继文件

 

-- 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

 

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

 

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

 

[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

 

[root@server named]# vim 192.168.101.db

 

[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   中继文件

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

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

 

[root@server etc]# cd /var/named/chroot/var/named

[root@server named]# vim sh.com.db

 

[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:

异地sendmail: