sendmail服务器案例配置

Linux/UNIX下的老牌邮件服务器。Sendmail作为一种免费的邮件服务器软件,已被广泛的应用于各种服务器中,它在稳定性、可移植性、及确保没有bug等方面具有一定的特色,且可以在网络中搜索到大量的使用资料。

实验拓扑图:

223045518.jpg

注:163主机与sina主机的hostname千万不要相同,也可以自己修改成相应的域名,如hostname本来为localhost.localdomain,改为mailserver.163.com(名字可自己定义,通常是: 主机名称 . 域名)

一、163.com域dns、mail服务器配置

1.安装配置dns

修改/var/named/chroot/etc/named.conf文件,

修改named.rfc1912.zones,添加如下内容:

zone "163.com" IN {

       type master;

       file "163.com.zone";

       allow-update { none; };

};

zone "142.168.192.in-addr.arpa" IN {

       type master;

       file "192.168.142.local";

       allow-update { none; };

};

223109686.jpg


223328914.jpg

引动dns服务,并设置开机启动

[root@host etc]# service named start

启动 named:                                               [确定]

[root@host etc]# chkconfig named on

2.好下面来安装并配置sendmail吧

首先采用yum安装这四个相关包:

sendmail、sendmail-cf、dovecot [接收邮件 pop3/imap]、m4 (负责转化,使用修改sendmail.mc--通过转换来使/etc/mail/sendmail.cf生效)


修改配置文件

1)/etc/mail/sendmail.mc

116 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl  

[将127.0.0.1改为0.0.0.0]

2)/etc/mail/local-host-names

# local-host-names - include all aliases for your machine here.

163.com

mail.163.com

/etc/mail/access 设置中继

3)启动sendmail和dovecot服务

[root@localhost mail]# service sendmail restart

关闭 sm-client:                                           [确定]

关闭 sendmail:                                            [确定]

启动 sendmail:                                            [确定]

启动 sm-client:                                           [确定]

[root@localhost mail]# service dovecot start

启动 Dovecot Imap:                                        [确定]

注:Sendmail: localhost.localdomain 的问题

当你用 telnet127.0.0.1 25 测试时,若出现 localhost.localdomain, 表示 Linux Server 的 tname设定有误,这个问题并不大因为它还是可以正常的收、发e-mail. 但是, 若寄给同样是 localhost.localdomain 的 mail server时,问题就来了。

情况如下:

    1. 收到退回的信件, �热菔�:
     553 5.3.5 对方的hostname. config error: mail loops back to me (MX problem?)
     554 5.3.5 Local configuration error  

    2. 本机 /var/log/maillog 日志记录出现:
     SYSERR(root): 对方的hostname. config error: mail loops back to me (MX problem?)      

    3. 对方的 /var/log/maillog 日志记录出现:

     本机IP did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA

原因:

由于本机名称是localhost.localdomain, 邮件发出后, 若对方Sendma主机名称也是 localhost.localdomain 时, 信件会回到本机邮件服器上, 无法寄到对方邮箱中,

如本案例中的163.com与sina.com均是localhost.localdomain,虽然感觉可以正常发送,就是没有接收到邮件,不要急,看一下日志吧,就知道了,应该是上面例出的错误,并且邮件的状态是queued,那就按照下面的方法来修改一下主机名hostname吧,
解�Q方法:

    1. 知道自己正确的 hostname 是什么 (通常是: 主机名称.域名, 如: local.163.com, 其中 local 是主机名称; 163.com 是域名)

2. cat /etc/sysconfig/network, 查看 hostname 是否设定正确, 若不正确请修改后, 执行:

    [root@local ~]# hostname 正确的hostname
3. cat /etc/hosts 检查 127.0.0.1 那一行是否只有 localhost 与localhost.localdomain 这两种叙述. 若否, 要清除不相干的�⑹�,

其时也可以添加域名如: 127.0.0.1  localhost.localdomain  163.com (各自服务器的域名,也可以不加,但要加时要注意不要加主机名,如mail.163.com,这样就错了,你会发现你你邮件地址会变为user@mail.163.com,而不是你想要的user@163.com,这可能是我sendmail的设置问题,可以自己尝试一下,推荐不用修改该文件即可)

  4. /etc/rc.d/init.d/sendmail restart 重新启动 Sendmail

  这样就可以了,

4)使用telnet命令访问邮件服务

a.测试smtp,telnet 192.168.142.2 25 223424193.jpg

① smtp默认端口是tcp的25,所以使用telnet登录到smtp服务器的25号端口。

② 通过helo向smtp服务器表明自己的身份

③ 通过mail from 命令指定发件人为user1@163.com

④ 通过rcpt to命令指定第一个收件人为user1@163.com

⑤ 通过data命令开始写邮件正文

⑥ 写邮件正文并通过“.”命令指定邮件书写完毕。

⑦ 断开连接。

b.测试pop3

直接使用telnet命令连接到pop3服务器110端口,就可以使用如下命令操作pop3服务,

223520331.jpg

223906113.png

① user 用户名:指定访问pop3服务的用户名;

② pass 密码:指定访问pop3服务的密码;

③ stat: pop3服务器返回邮箱统计资料,比如邮件数、邮件总字节数等

④ uidl 邮件编号:pop3服务器返回指定邮件的惟一标识,如果不指定邮件编号,则返回所有邮件的信息

⑤ list  邮件编号:pop3服务器返回指定邮件的信息,比如大小等,如果不指定邮件编号,则返回所有邮件的信息

⑥ retr  邮件编号:pop3服务器返回指定邮件的全部文本

⑦ dele 邮件编号:pop3服务器将指定邮件标记为删除,quit命令执行时才真正删除。

⑧ rset  邮件编号:pop3服务器将指定邮件删除标记清除

⑨ top  邮件编号行数:pop3服务器返回指定邮件正文的前几行。

5)测试过了,那我们就找一个192.168.142.5的客户机来测试,先给自己发一封邮件,

224155362.jpg

6.经测试如下图,正常,也可以正常接收:

224245381.jpg

二、sina.com域dns、mail服务器配置

注:163.com域一切正常了,那就来修改一下sina.com域吧,配置方式与163.com域基本相同,就是所针对的域不同,

1.首先配置dns正向与反向

230444238.jpg

224410283.jpg

2.启动dns服务,并做反向测试

224444520.jpg

3.sendmail的安装同163.com域,针对的local-host-names不同,只需要修改如下:

/etc/mail/local-host-names

# local-host-names - include all aliases for your machine here.

sina.com

mail.sina.com

4.配置后,启动sendmail和dovecot服务。

三、测试阶段

两个域都配置完成,就来测试吧,

1.在192.168.142.10的客户机上给163.com域发送一封邮件,

224612798.jpg

2.发现如下错误:

224631994.jpg

3.因为我们没有设置dns转发,分别在各自的配置文件named.rfc1912.zones添加如下内容:

163.com

zone "sina.com" IN {

       type forward;

       forwarders {192.168.142.3; };

};


sina.com

zone "163.com" IN {

       type forward;

       forwarders {192.168.142.2; };

};

4.加上后,重启dnse服务,再次测试,发现如下图:

224703556.jpg

也可以通过/var/log/maillog日志文件来查看

224903140.jpg

5.修改/etc/mail/access,因为默认情况下是不支持中继的,

225259841.jpg

6.修改过之后就可以正常发送了,

现在到192.168.142.2的主机上163.com域上接收,但回复时也会出现如上的错误,

也在/etc/mail/access做如下修改,

225404524.jpg

7.重启sendmail服务后,发现就可以正常中继,接收邮件了,

230017493.jpg

测试正常,实验结束喽



你可能感兴趣的:(linux,master,邮件服务器,稳定性,拓扑图)