linux系统下邮件服务器的架设(上)

难道我写的不够详细吗,看的同志给点意见啊
1.首先我们要清楚一些概念,邮件服务器是在一个域内的,比如我建的邮件服务器是在zhaoyong.com这个域内的,邮件服务器分为发邮件和接受邮件,发邮件的工具是smtp ,接受邮件的是pop3和imap,由于pop3逐渐会被淘汰,这里我们只学习imap
当我们在寄信时,所使用的是 SMTP (Simple Mail Transfer Protocol) 通讯协议,而收信时,使用的是 POP3 (Post Office Protocol) 或是 IMAP (Internet Message Access Protocol) 协定。
一般常用的 SMTP 软件为 FreeBSD 内附的 Sendmail、Qmail、或 Postfix。而收信时所使用的 POP3 及 IMAP 软件
2.首先我们去sendmail的官网上去下载最新的版本,,最新的版本是 8.14.1大家可以去这里下载
3.[root@zy jishu]# rpm -q sendmail 确保你没有安装sendmail 和 postfix 如果你安装了请卸载它
[root@zy jishu]# rpm -q postfix
[root@zy jishu]# rpm -e --nodeps sendmail ,--nodeps 忽略依赖信息检查
传统上,SMTP 在接受使用者寄信时,并不须经过身份认证,任何人都可以使用你的主机来制造垃圾信 而且sendmail没有自己的认证库,我们需要检测是否装了如下的认证库
[root@zy jishu]# rpm -qa |grep sasl
cyrus-sasl-2.1.15-6
cyrus-sasl-plain-2.1.15-6
cyrus-sasl-md5-2.1.15-6
cyrus-sasl-devel-2.1.15-6
如果没有安装的话大家去这里下载ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
需要注意sendmail需要dns服务安装好的情况下进行,如果你dns没安装好 ,请参考我的第12课和第13课
4. 大家需要注意的是邮件服务器一定要在本地区域内
[root@zy jishu]# more /var/named/zhaoyong.com.zone
@ 1D IN SOA zhaoyong.com. root (
2007080312
1H
15M
1W
1D )
IN NS @
IN A 192.168.1.144
IN MX 10 mail
www IN A 192.168.1.101
mail IN A 192.168.1.102
news IN CNAME www
ftp IN CNAME mail

我这里的邮件服务器的地址为192.168.1.102 确保dns可以解析的, MX是邮件服务器 10代表优先级,数字越小优先级越高, 5.然后我们来编译sendmial主文件
[root@zy jishu]# tar zxvf sendmail.8.14.1.tar.gz 解压该目录
[root@zy jishu]# cd sendmail-8.14.1/ 进入该目录
sendmail默认情况下是没有用户认证库的
我们需要编辑如下文件
[root@zy sendmail-8.14.1]# vi devtools/Site/site.config.m4 然后在里面加上如下两句话,把SMTP认证功能编译到sendmail中
APPENDDEF(`confENVDEF',`-DSASL=2')
APPENDDEF(`conf_sendmail_LIBS',`-lsasl2') 大家一定要看清楚不要写错
6.然后我们来编译此工具
[root@zy sendmail-8.14.1]# sh Build -c Build是一个脚本 大家可以./Build 直接执行 也可以用sh 执行
编译好之后将自动产生一个sendmail的守护程序
[root@zy sendmail-8.14.1]# sh Build INSTALL 它就会把sendmail的可执行文章安在相应的位置
sendmail配置的是后需要宏解释器M4 我们确定一下它安装了没有
[root@zy sendmail-8.14.1]# rpm -q m4
m4-1.4.1-14 由于sendmail配置非常的复杂,而且语法非常难懂,所以我们需要宏解释器。所以sendmail配置的时候可以使用m4 宏配置来使用
在sendmail下包含了一套宏定义,在该目录的cf目录下,我们需要把这个目录cp到系统中去
[root@zy sendmail-8.14.1]# mkdir /usr/share/sendmail 创建一个目录
[root@zy sendmail-8.14.1]# cp -a cf /usr/share/sendmail , -a是将整个目录cp的意思
[root@zy sendmail-8.14.1]# cd cf/cf/ 我们进入cf的cf目录下
sendmail需要sendmail.mc文件 在cf这个目录下,有适用于不同类型的sendmail.mc配置文件,我们选择linux的配置文件
[root@zy cf]# cp generic-linux.mc sendmail.mc 复制这个文件
[root@zy cf]# more sendmail.mc 查看这个配置文件 其中这个文件是没有空格的大家注意,每行结尾都有dnl,dnl的意思也就是注释的意思
也就是就算有空格也注释掉的意思
divert(0)dnl
VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
[root@zy cf]# make install-cf 安装sendmail的配置文件
然后它会在里面提示你要建立一个目录
[root@zy cf]# mkdir /etc/mail
[root@zy cf]# make install-cf 从新运行一次
[root@zy cf]# cp sendmail.mc /etc/mail 将这个文件cp到mail目录下 以后我们想改变配置文件 只需要改变mail目录下的sendmail.mc
[root@zy mail]# cd /etc/mail/ 进入该目录
[root@zy mail]# touch aliases access 我们先建立两个初始化的文件 aliases 保存用户的别名文件 access 是允许访问用户的地址
[root@zy mail]# echo "zhaoyong.com" > local-host-names 这句话的意思是告诉本机是为了zhaoyongcom这个域服务的
[root@zy mail]# echo "zhaoyong.com" >> local-host-names 用重定向追加进去
它不光是为zhaoyong.com这个域服务,他还为mail.zhaoyong.com服务所以也要写进去
[root@zy mail]# makemap hash access < access 由于access是一个空文件所以我们用makemap命令来把文件建立成一个数据库
-bash: makemap: command not found 我们发现命令是失败的
[root@zy mail]# which makemap
/usr/bin/which: no makemap in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin)
所以我们要退回去
[root@zy sendmail-8.14.1]# sh Build INSTALL 将sendmail从新安装下 哥们们我是苦了,我的linux内核不支持makemap我发疯了,新版本的支持不够啊,我要从新卸载用光盘的安装了 郁闷死了
[root@zy mail]# makemap hash aliases < aliases 生成一个aliases
[root@zy mail]# mkdir /var/spool/mqueue 建立这样一个文件的目的是发往服务器的用户可能有很多,需要有一个先后顺序
[root@zy mail]#/usr/sbin/sendmail -db -q1h ,-db在后台运行-q1h 1小时处理一次队列,启动服务器
[root@zy mail]#ps -aux |grep sendmail 查看下是否运行
7.测试
[root@zy root]# netstat -tnl |grep :25 监听下本机的25端口是否在运行
建立用户来收信和发信
[root@zy root]# useradd RedHat
[root@zy root]#passwd redhat
注意root用户是不能利用smtp协议来收信和发信
未完待续,哥们们支持我,raid5把我折腾坏了,烂惠普服务器明天又要去从装。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyszg.html