你的位置:首页 > 操作系统

[操作系统]16、简单自制邮件服务器


1、协议服务:

     SMTP       tcp      25 端口      邮件存储和递送
     POP3       tcp      110 端口     用户读、写邮件

 


 

2、服务器:  (SMTP   25 端口)
     sendmail     成熟,易配置
     postfix       AIX系统开发 (IBM)  所以Linux下  不易配置
     gmail          号称 处理速度快,能力强

 

3、客户端:   (POP3  110 端口)
     文本:     mutt
      图形:    foxmail     evolution

 

一、 配置mail域名服务器

[root@localhost root]#  vi   /var/named/gr.org.db

$TTL 86400@ IN SOA ns.gr.org.  root.gr.org.(      20140308 ;serial      8H    ;refresh      4M    ;retry      1W    ;expiry      1D )  ;minimum@   IN  NS   ns.gr.org.ns   IN  A    192.168.170.1host1 IN  A    192.168.170.1host2 IN  A    192.168.170.2host3 IN  A    192.168.170.3@   IN  MX 10 mail.gr.org.mail  IN  A    192.168.170.1

重启服务

[root@localhost root]# rndc   reload

测试

[root@localhost root]# nslookup   -sil   mail.gr.org
Server:         192.168.170.3
Address:        192.168.170.3#53

Name:   mail.gr.org
Address: 192.168.170.1

 

二、sendmail 配置

1、看sendmail是否安装好

     [root@localhost root]# cd  /etc/mail
     [root@localhost mail]#  rpm  -q  sendmail
     sendmail-8.12.8-4

(sendmail 配置  实验  关键步骤 :
           修改sendmail.mc ,再通过 m4  生成 sendmail.cf
           修改local-host-name 设置 收信的域
           access(访问控制) 通过 makemap  生成  access.db
           aliases 设置群发  通过 newaliases  生成  aliases.db
           service   sendmail   restart (重启服务)
     )

 

2、配置核心文件:

    [root@localhost mail]# vi   /etc/mail/sendmail.mc

更改地方如下面3个

1) 侦听网段
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

image

 

2) 本地域名
LOCAL_DOMAIN(`localhost.localdomain')dnl
改为
LOCAL_DOMAIN(`gr.org')dnl

image

 

3) 开启认证功能:
把下面三行中行首的 dnl 去掉:

dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')

image
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

image

 

3、建立 /etc/mail/sendmail.cf
[root@localhost mail]# m4  /etc/mail/sendmail.mc  >  /etc/mail/sendmail.cf

 

4、设置收件的域
      [root@localhost mail]# vi    /etc/mail/local-host-names

gr.org
mail.gr.org

 

5、建立组和用户

       [root@localhost mail]# groupadd   stu
       [root@localhost mail]# useradd   huji   -g   stu  -s  /sbin/nologin
       [root@localhost mail]# passwd   huji
       Changing password for user huji.
       New password:
       BAD PASSWORD: it is based on a dictionary word
       Retype new password:
       passwd: all authentication tokens updated successfully.
       [root@localhost mail]# useradd   stu   -g   stu   -s   /sbin/nologin
       [root@localhost mail]# passwd    stu
       Changing password for user stu.
       New password:
       BAD PASSWORD: it is based on a dictionary word
       Retype new password:
       passwd: all authentication tokens updated successfully.

     [root@localhost root]# useradd   wuji   -g   stu  -s  /sbin/nologin
     [root@localhost root]# passwd wuji
     Changing password for user wuji.
     New password:
     Retype new password:
     passwd: all authentication tokens updated successfully.


 

6、设置群发别名:
       [root@localhost mail]#  vi   /etc/aliases
       添加两行:
       root: root,yanji
       stu:  yanji,wuji,huji

 

7、生成 aliases.db 数据库:

[root@localhost mail]# newaliases   /etc/aliases:  64 aliases
/etc/aliases: 65 aliases, longest 15 bytes, 657 bytes total

 

8、设置访问控制:
       [root@localhost mail]# vi   /etc/mail/access
       192.168.170.0/24                RELAY
       gr.org                                 RELAY
       mail.gr.org                           RELAY

 

9、更新 aliases.db 数据库
       [root@localhost mail]#  makemap  -r  hash  /etc/mail/access.db  <  /etc/mail/access

 

10、重启服务
       [root@localhost mail]# service  sendmail   restart
       关闭 sendmail:                                            [  确定  ]
       关闭 sm-client:                                           [  确定  ]
       启动 sendmail:                                            [  确定  ]
       启动 sm-client:                                           [  确定  ]

 

现在来测试

方法一、

发邮件:(给yanji写信  主题:Greet  内容:Hello, yanji.)
      [root@localhost mail]# echo  "Hello, yanji." | mutt   -s   "Greet"   yanji@gr.org

查看邮件
     [root@localhost mail]# su  - yanji
     [yanji@localhost yanji]$ zh
     [yanji@localhost yanji]$ mutt

image

yes,回车

image


 

 

方法二、

在Windows用foxmail验证

[root@localhost root]# chkconfig  ipop3  on
[root@localhost root]# service   xinetd  restart
停止 xinetd:                                              [  确定  ]
启动 xinetd:                                              [  确定  ]

 

禁用本地连接,不让上网。  把VMware8  的DNS服务器指定为 192.168.170.3.

image

 

foxmail新增yanji帐号

image

image

image

 

image

 

image

 

群发

先创建huji 和wuji的帐号

image

 

发邮件给stu,就会给这个stu组 所有的成员发邮件

[root@localhost root]# echo  "Hello, student."  | mutt  -s  "Greet" stu@gr.org 

验证如下

image