LINUX-sendmail
MAIL 邮件模型 MUA (message user agent) 邮件用户代理 泛指邮件客户端 常见的如 SENDMAIL 、 QMAIL 、 POSTFIX 、 EXIM 等; Windows 的 Exchange 、 imail 等。 -- 从MTA取的信,或者通过POP,IMAP把信发到MTA上 MTA (message transfer agent) 邮件传输代理 就是发送服务器 -- 监视MUA的请求 ,找出对方的MTA,把信传到对方MTA服务器,或者把信收到邮件队列 MDA (message deliver agent) 转发代理 邮件的投递员 smtp: 简单邮件传输协议(simple mail transport protocol) , 发邮件用的协议,明文传输,基于tcp服务的应用层 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 110,imap:TCP 143 sendmail 是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。 sendmail //sendmail 服务器程序的安装包 , 默认已安装 m4 // 包括了配置 Sendmail 服务器的必要工具,默认已安装 sendmail-cf // 包括了重新配置 Sendmail 服务器的必要配置文件 sendmail-doc s//endmail 服务器说明文档 sendmail.cf // 主配置文件,但该文件配置难度很大,一般修改 sendmail.mc 然后通过运行 m4 sendmail.mc > sendmail.cf 来重新生成 local-host-names // 设置 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 [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发送邮件 [root@server mail]# service sendmail restart [root@server mail]# vim access 中继文件
-- ok 无条件接受, relay 中继, reject是拒绝
[root@server mail]# vim local-host-names 域名比对,表示本地域名
[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 查看自己的主机名 [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 [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 只用明文的110和143 两个端口
上海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 重启系统
测试: