刚刚学习linux还不到一个月,现在可以说是刚刚入了门,而且刚刚学会配置sendmail,这个是我的学习笔记,现在我整理出来,贴出来供大家参考,有不对的地方请大虾指正,谢谢!
系统是redhat9,硬件是普通pc机。
好了,现在来开始吧!
机器ip地址:192.168.1.100
[一]安装配置sendmail服务器,来进行收发邮件
一,安装sendmail
1,首先看看系统是不是已经装好了sendmail(默认是已经装好的)
#rpm -qa |grep sendmail
如果没有安装
#rpm -ivh sendmail.*.rpm(把sendmail的几个rpm包都装上)
2,sendmail 的配置文件在/etc/mail/下面
(1)修改配置文件 /etc/mail/sendmail.cf
#vi +264 sendmail.cf(在264行的地方)
把O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
修改成
O DaemonPortOptions=Port=smtp,Addr=192.168.1.100, Name=MTA
(2)修改/etc/mail/access(没有的话创建一个)
127.0.0.1 RELAY
192.168.0 RELAY
接着生成库文件
#makemap hash /etc/mail/access.db < /etc/mail/access
(3)修改 /etc/mail/local-host-names
#vi local-host-names
加入本机域和MAIL域
yelanxin.com
mail.yelanxin.com
(4)启动sendmail
#service sendmail start
(5)在dns配置文件里加MX记录
在正解文件里面加
IN MX 0 mail.yelanxin.com.
mail IN A 192.168.1.100
dns正解上面部分我省略了,mx记录不知道这样加对不对,不对的话请大虾指正,共同进步谢谢!
(6)测试收发信(telnet 到mail服务器的25端口)
[root@localhost mail]# telnet mail.yelanxin.com 25
Trying 192.168.1.100...
Connected to mail.yelanxin.com (192.168.1.100). #如果成功会出现这些信息
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.5/8.13.5; Sun, 30 Apr 2006 13:57:45 +0800
helo ye #首先helo一下
250 localhost.localdomain Hello [192.168.1.100], pleased to meet you
mail from:root@yelanxin.com#发信者
250 2.1.0
root@yelanxin.com... Sender ok
rcpt to:yelanxin@yelanxin.com #收信者(yealnxin这个用户必须存在)
250 2.1.5
yelanxin@yelanxin.com... Recipient ok
data #data表示开始写内容
354 Enter mail, end with "." on a line by itself
NI HAO,NI SHI ROOT MA ? #信的内容
. # 这个点表示写信结束
250 2.0.0 k3U5vjM5002759 Message accepted for delivery
quit #退出
221 2.0.0 localhost.localdomain closing connection
Connection closed by foreign host.
好了,用户yelanxin就可以收到信了,#tail /var/mail/yealnxin
你也可以用局域网中的xp系统 运行cmd,进行测试。方法一样。不过微软不支持修改错误,比较纳闷的一件事。
[二]配置邮件别名,邮件列表,邮件转发
一,邮件别名
(1)在创建/etc/aliases文件
#vi /etc/aliases
格式:
别名:系统用户名
确保别名不是系统用户。
添加内容如下:
administrator:root
ylx:yelanxin
然后保存。
(2)生成别名数据库
#newaliases
好了,邮件别名配置完成,aliases里面可以自己随便添加别名,现在可以测试了。
(3)测试
#telnet mail.yealnxin.com 25
现在给administrator或者ylx发信,
所以在rcpt to:administrator@yelanxin.com\
ylx@yelanxin.com
然后看看root或者yelanxin有没有收到信。收到表示成功了。
二,创建邮件列表
这个跟上面的区别就是别名后面可以添加多个系统用户名。
比如
#vi /etc/aliases
maillist:root,yelanxin,haha,heihei (这些要是系统用户)(记得newaliases一下,呵呵,我老忘记。)
给maillist发信,root,yelanxin,haha,heihei 都会收到。
大家可以用同样的方法测试。
三,邮件转发
#vi /etc/aliases
添加
aaa:root@163.com
说明:给aaa发信,邮件会被转发到root@163.com(如果可以与外网连的话,我到现在都还搞懂和外网发邮件,呵呵。大虾如果看到的话,希望写一篇教程教教我们这些菜鸟。)
可以用同样的方法进行测试。
[三]配置虚拟主机
一,创建/etc/mail/sendmail.cw
添加虚拟域名
#vi sendmail.cw
添加
heihei.yelanxin.com
保存
然后在dns服务器加一heihei记录
添加虚拟帐号
#vi /etc/mail/virtusertable
添加
lala@heihei.yelanxin.com root #发给lala@heihei.yelanxin.com的信会被root接收。
#lala用户不是系统用户。
保存
然后生成数据库文件
#makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
好了,可以telnet到25端口进行测试了。方法如上。
[四]配置sendmail发信认证
首先看看系统是不是装了cyurs-sasl模块,sendmail和它结合来实现smtp认证的。
#rpm -qa | grep sasl
一般都已经装好了,如果没有装好从光盘上找到安装上。
编辑/etc/mail/sendmail.mc
#vi /etc/mail/sendmail.mc
去掉注释
把dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
改成TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
把dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
改成 DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
把DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
改成DAEMON_OPTIONS(`Port=smtp,Addr=192.168.1.100, Name=MTA')dnl
然后用m4重新生成sendmail.cf
#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
重新启动sendmail
#service sendmail restart
然后进行测试
#telnet mail.yelanxin.com 25
Trying 192.168.1.100...
Connected to mail.yelanxin.com (192.168.1.100).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.5/8.13.5; Sun, 30 Apr 2006 14:54:41 +0800
ehlo ye # 输入ehlo 不是helo 呵呵。。。。
250-localhost.localdomain Hello [192.168.1.100], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN #如果有此项表示sendmail具有用户发信认证了。
250-DELIVERBY
250 HELP
quit
221 2.0.0 localhost.localdomain closing connection
Connection closed by foreign host.
大家可以用邮件客户端进行验证。
[五]配置 POP3 和 IMAP4
查看系统有没有安装imap软件包。
#rpm -qa | grep imap
如果没有装的话,光盘找到装上。
进入/etc/xinetd.d目录
#cd /etc/xinetd.d
里面有pop3和imap配置文件
把两个文件的 disable = yes 改成 disable = no ,然后保存。
然后重新载入xinetd服务。
# /etc/rc.d/init.d/xinetd reload
然后telnet 到pop3 (110)和imap(143)端口,看看是否成功。
#telnet mail.yealnxin.com 110
#telnet mail.yelanxin.com 143
好了,基本上都配置完了,如果有什么不对的地方请大家指教。不够的地方请大家补充。谢谢!!