linux邮件服务器架设知识学习

1,这里想提醒大家一下root用户是不能收信和发信的,sendmail是监听

在25端口的
2建立用户来收信和发信
[root@zy root]# useradd RedHat
[root@zy root]#passwd redhat
3.由于邮件系统必须要有一个别名文件aliases,而且不能为空
[root@zy mail]# echo "root: redhat" > /etc/mail/aliases
我们把所有发给root用户的信转发到redhat下
为了让这个aliases生效,我们需要运行
[root@zy mail]# newaliases
它会自动建立一个新的数据库帐号
4.[root@zy mail]# telnet localhost 25
连接本地服务器,连接成功后它会
220 zy.zhaoyong.com ESMTP Sendmail 8.12.10/8.14.1; Tue, 31 Jul

2007 11:07:46 +0800
上面提示的是sendmail版本号,以及登录时间,我们在下面写入标准的

sendmail语句
mail from: root@zhaoyong.com 代表信是从这里发出的zhaoyong.com是

我的域,它会回应信息为
250 2.1.0 root@zhaoyong.com... Sender ok
接下来我们写入
rcpt to: redhat@zhaoyong.com , rcpt to代表的是发送给谁,这里发

送给本机的redhat用户,下面是回应信息证明发送成功了
250 2.1.5 redhat@zhaoyong.com... Recipient ok
然后输入data命令,下面可打上你想要说的话
data
354 Enter mail, end with "." on a line by itself
zhaoyongaimeinv.
.
250 2.0.0 l6V3U9SP002895 Message accepted for delivery
其中.代表这一行的结束。单独一行.代表写完了
然后我们quit退出
5.[root@zy mail]# tail /var/log/maillog 查看日志确定是否信发送

成功 ,在最后一行看到,stat=send说明是成功的
6.sendmail是发信的现在我们来配置收信的服务器,现在我们配置imap

收信服务器
[root@zy RPMS]# rpm -ivh --aid imap-* 首先安装imap服务在第三张

盘里
1:imap-devel ###################################### [ 50%]
2:imap ################################## [100%]
[root@zy root]# chkconfig imap on 开启imap服务
但是imap是不能独立运行的它需要xinetd超级服务才能启动
[root@zy root]# ls /etc/xinetd.d 可以在这里查看到imap服务
[root@zy root]# service xinetd restart 启动超级服务
[root@zy root]# grep imap /etc/services 我们从/etc/services里过

滤看到imap服务的启动端口是143
imap 143/tcp
imap 143/udp
[root@zy root]# netstat -tnl |grep 143 查看端口是否启用
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
结果反应我们的服务是启动成功了
现在我们来用outlook测试下
点开始-程序-outlook-工具-帐户-添加-邮件-显示名zhaoyong-

redhat@zhaoyong.com-我的邮件接受服务器是选择imap,接受邮件地址

和发送邮件的地址都是192.168.1.144,大家根据自己的设定写地址了-

帐户名是redhat,密码123,完成。
接着我们来创建邮件大家自己实验
此时我们只是在服务器内部可以工作,如果想要在互联网工作还需要
7.这里我们来讲服务器的转发,当收件人不是服务器本身而是另外的一

个域的时候,就需要服务器转发relay
我们编辑配置文件
Sendmail的配置十分复杂。它的配置文件是sendmail.cf,位

于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人会直

接去修改该文件来对Sendmail服务器进行配置。我们一般通过m4宏处理

程序来生成所需的sendmail.cf文件。创建的过程中还需要一个模板文件

,系统默认在/etc/mail目 录下有一个sendmail.mc模板文件。
我们可以根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,

而无需直接编辑sendmail.cf文件。可以直接通过修改sendmail.mc模板

来达到定制sendmail.cf文件的目的。这里介绍创建sendmail.cf文件的

步骤:
[root@zy root]# vi /etc/mail/sendmail.mc 加入下面这句话
FEATURE(`access_db')dnl 这句话的意思是打开access_db这个库
因为FEATURE是一个宏定义,所以我们还要加上这句话
include (`/usr/share/sendmail/cf/m4/cf.m4')dnl ,这是我们默认定

义宏定义的文件,/usr/share/sendmail/cf/m4/cf.m4 这个目录是我在

14课的时候建立的,大家可以参考14课的内容
[root@zy mail]# m4 sendmail.mc > sendmail.cf 然后使用m4 将宏语

言翻译成sendnail.cf的配置文件 然后
[root@zy mail]# echo "192.168.1 RELAY" >> access 意思就是来自

192.168.1 这个网段的地址都会被转发出去
[root@zy mail]# makemap hash access < access 然后创建一张表,来

源是access
然后你就会在mail目录下发现一个access.db的文件它就是刚刚创建的表
[root@zy mail]# killall -9 sendmail 杀死你的sendmail服务器然后

从新启动
[root@zy mail]# sendmail -db -q1h-b:
-b指定Sendmail在后台运行,并且监听端口25的请求。
-d:指定Sendmail以Daemon方式运行(守护进程)。
-q:当Sendmail无法将邮件成功地发送到目的地时,它会将邮件保存在

队列里。该参数指定邮件在队列里保存的时间。例子里的1h表示保留1小

时。
然后我们进行测试下,写一封信来自zhaoyong.com这个域的 发送到另外

一台服务器zy.com这个域的,大家自己测试下吧 反正我测试成功了 呵

呵,这个过程如果出错的话,大家注意下自己的dns服务器是否成功,最

好先测试下自己的dns服务器,也可以
[root@zy mail]# tail /var/log/maillog 看看这里的报错消息
8.如果你的客户机地址是变化的,我们就需要配置用户认证模式
[root@zy root]# vi /etc/mail/sendmail.mc 我们就需要修改用户认

证机制,在里面加入如下几行
include (`/usr/share/sendmail/cf/m4/cf.m4')dnl 这句是上面加过的
define(`confAUTH_OPTIONS'.`A y')dnl 这句的意思是打开用户认证选

项,A y 是必须通过认证
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl 表示信任的认证机制我们使用

login和plain 这是大多数客户段支持的认证方式,像outlook就是支持

这样的认证方式
define(`confAUTH_MECHANISMS'.`LOGIN PLAIN')dnl指的是默认定义的

认证机制是login和plain
wq 保存退出
[root@zy mail]# m4 sendmail.mc > sendmail.cf 重新用m4翻译成配置

文件
由于sendmail本身自己不提供认证
所以我们必须打开saslauthd认证服务
[root@zy mail]#chkconfig saslauthd on
[root@zy mail]#services saslauthd restart 然后从新启动
[root@zy mail]#echo "pwcheck_method:saslauthd" >

/usr/lib/sasl2/sendmail.conf 然后编辑一个认证配置文件重定向到

sasl2的默认sendmail.conf 它要通过这个文件来知道sendmail如何通过

用户认证
[root@zy mail]#services saslauthd restart
[root@zy mail]# killall -9 sendmail 杀死你的sendmail服务器然后

从新启动
[root@zy mail]# sendmail -db -q1h-b
下面我们来测试用户
[root@zy mail]# telnet localhost 25 登录服务器的25端口
输入ehlo localhost
如果出现 250-AUTHLOGIN PLAIN 说明成功打开用户认证机制
quit退出
在outlook里测试,我们选择192.168.1.144的属性,然后选择我的服务