邮件服务器之sendmail的简单配置
安装软件名
1、 sendmail sendmail主程序
2、 sendmail-cf 可以说是帮助理解sendmail语法配置
3、 m4 转换工具
rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
Sendmail和m4系统默认应经安装(我的是RedHat5.4的版本)
[root@RHEL mail]# service sendmail start
启动 sendmail:
[root@RHEL mail]# chkconfig sendmail on 开机启动
[root@RHEL mail]# netstat -tupln |grep 25
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2774/sendmail: ace
先添加一个用户
[root@RHEL mail]# useradd user1
[root@RHEL mail]# echo "123" |passwd --stdin user1 设置密码
查看主机名
[root@RHEL mail]# hostname
localhost
用系统root账户给user1账户发一封邮件,并查看
q 退去时,再次用mail命令查看时就会“No mail for user1”邮件被保存在自己的家目录下的mbox文件中,如上图:
x 退去时,不变。。。
此时监听的ip为127.0.0.1,就是自能监听本机,其它的客户机不能用该机的25端口发邮件:如下:
编辑/etc/mail/sendmail.mc 将127.0.0.1改为0.0.0.0如下:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
重启sendmail服务,用客户机给root发一封垃圾邮件,并查看
以上可以看出sendmail 无身份验证,无加密、无防垃圾邮件的功能。但它简单易用,可以配合第三方软件来实现以上功能。所以市场份额占据50%左右
下面通过一个小实例再来深入一下:
Ip地址为192.168.2.100的mail服务器的域名为wsm.com 和两个邮件用户分别为user1、user2
Ip地址为192.168.2.200的mail服务器的域名为qq.com和两个邮件用户分别为user3、user4
拓扑图如下:
1、 首先安装DNS服务 相关rpm包如下:
rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
cd /var/named/chroot/etc
cp -p named.caching-nameserver.conf named.conf
vim named.conf 修改为如下:
listen-on port 53 { any; };
allow-query { any; };
allow-query-cache { any; };
match-clients { any; };
match-destinations { any; };
vim named.rfc1912.zones 添加如下5行
zone "qq.com" IN {
type master;
file "qq.com.zone";
allow-update { none; };
};
cd /var/named/chroot/var/named/
cp -p localhost.zone qq.com.zone
vim qq.com.zone 如下:
注:vim /etc/resolv.conf 确保自己的DNS的指向为本机
启动DNS服务
(关于DNS的详细配置请参考http://abc16810.blog.51cto.com/3177586/1032963一文)
在邮件客户端中如outlook让user1给自己发一封邮件(确保客户机的dns指向为192.168.2.200即DNS服务器) 在客户端测试一下DNS配置是否成功。
客户机能解析mail.qq.com的地址 ok
Outlook配置完成后就基本上是这样的
好嘞,下面用user1给自己发一封邮件!!!!!!!!!
点击“发送” 由日志可以看出已经成功发送
Sep 23 14:05:48 localhost sendmail[3007]: q8N65mPe003007: from=<user1@qq.com>, size=427, class=0, nrcpts=1, msgid=<001301cdc0d1$0fffe9a0$0a02a8c0@wsmkiss>, proto=SMTP, daemon=MTA, relay=[192.168.2.10]
Sep 23 14:05:48 localhost sendmail[3009]: q8N65mPe003007: to=<user1@qq.com>, ctladdr=<user1@qq.com> (501/501), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30594, dsn=2.0.0, stat=Sent
在mail服务器上User1接收到了
编辑vim /etc/mail/local-host-names 添加两句话如下:(域名为qq.com的邮件服务器)
qq.com
mail.qq.com
编辑vim /etc/mail/local-host-names 添加两句话如下:(域名为wsm.com的邮件服务器)
wsm.com
wsm.qq.com
在outlook上user1能不能接受呢,答案是肯定不能,因为mail服务器才监听了25端口即smtp协议,pop3和imap4相应的协议还没安装,这要靠dovecot来支持啦。。最好yum安装,
yum -y install dovecot
service dovecot start 开启dovecot服务
2、 配置域名为wsm.com的mail服务器,这与步骤1、基本相同,这里我就不详细说了
在底下我已经配置好了,并为域名为qq.com的mail服务器再建一个user3用户
3、 按照我们的要求,user1用户给user3用户发送一封邮件,user3用户再给user1用户发送一封邮件,使彼此都能够发送邮件。
用user1@wsm.com给user3qq.com发送一封邮件先 会报错 查看日志如下:
Sep 13 02:59:48 localhost sendmail[17190]: q8CIxlRW017190: ruleset=check_rcpt, arg1=<user3@qq.com>, relay=[192.168.2.20], reject=450 4.4.0 <user3@qq.com>... Relaying temporarily denied. Cannot resolve PTR record for 192.168.2.20
Sep 13 02:59:48 localhost sendmail[17190]: q8CIxlRW017190: from=<user1@wsm.com>, size=0, class=0, nrcpts=0, proto=SMTP, daemon=MTA, relay=[192.168.2.20]
基本意思就是没有中继 这是因为默认不中继
编辑域名为wsm.com的mail服务器的/etc/mail/access 中继文件添加如下内容:
wsm.com OK
qq.com RELAY
编辑域名为qq.com的mail服务器的/etc/mail/access 中继文件添加如下内容:
qq.com OK
wsm.com RELAY
分别重启两台mail服务器的sendmail服务
分别修改两台主机的主句名如下:
vim /etc/sysconfig/network 修改为如下
HOSTNAME=mail.qq.com
hostname mail.qq.com
vim /etc/sysconfig/network
HOSTNAME=mail.wsm.com
hostname mail.wsm.com
再次用user1@wsm.com给user3qq.com发送一封邮件先 有报错!!! 查看日志如下:
Sep 13 03:08:35 localhost sendmail[17254]: q8CJ8YDa017254: from=<user1@wsm.com>, size=1221, class=0, nrcpts=1, msgid=<782BF4FBF3144C00AB87568CB8C82DDB@wsm5511ffd55a4>, proto=SMTP, daemon=MTA, relay=[192.168.2.20]
Sep 13 03:08:35 localhost sendmail[17254]: q8CJ8YDa017254: to=<user3@qq.com>, delay=00:00:00, mailer=esmtp, pri=31221, dsn=4.4.3, stat=queued
这与上变的错误已经不一样了,这可能是DNS转发的问题:
编辑wsm.com的mail服务器的/var/named/chroot/etc/named.conf DNS的主配置文件 在option中添加如下内容:
forwarders { 192.168.2.200; };
编辑qq.com的mail服务器的/var/named/chroot/etc/named.conf DNS的主配置文件 在option中添加如下内容:
forwarders { 192.168.2.100; };
分别重启两台mail服务器的named服务
这样速度很慢,我们要配合反向DNS解析动能 (mail服务器需要配合DNS反向解析)
两台mail服务器的DNS反向解析的区域文件分版本 添加一个PTR指针如下:
域名为qq.com的mail服务器 200 IN PTR mail
域名为wsm.com的mail服务器 100 IN PTR mail
重启DNS服务,,
再次发送就没问题了。
如有疑问,,欢迎回复。。。
本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1059234