| 作者:未知 来源:网上收集 发布时间:2007-4-18 12:24:49 浏览次数: 0741812295686522 |
|
一. Sendmail的工作模式
显然,在DNS中说明linuxaid.com.cn有2个MX服务器,于是,Sendmail试图将邮件发送给两者之一。一般来说,排在前面的MX服务器的优先级别比较高,因此服务器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给它。如果成功,SMTP服务器的任务就完成了。在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般情况下,MX服务器会自动把信件内容转交给目标主机。不过,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或者不执行SMTP服务,而是由其MX服务器来执行信件的管理,这时候,最终的信件将保存在MX机器上,直到用户来查看它。 如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么 Sendmail将试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cn,DNS中没有对应的MX记录,因此Sendmail在确定MX服务器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。 二. 工作环境 本文假设用户希望在企业网环境中创建一个电子邮件服务器,为本企业用户提供邮件服务。该服务器拥有一个合法的IP地址202.99.11.200和一个合法的域名mail.linuxaid.com.cn,并且DNS的MX记录也指向该域名(注:这里示例域名和IP地址均为伪造域名和地址)。为了满足域名需求,DNS的域数据文件应该包含以下内容:
试验环境为RedHat 6.2、Sendmail 8.11.4和Qpopper 4.0.3,可分别从http://www.Sendmail.org/current-rel...Popper_general/ 下载Sendmail和Qpopper。 三. Sendmail的安装 当前Sendmail最新的稳定版本为8.11.4,下载得到tar.gz格式的压缩包以后,将其存放在/usr/src目录下。 1.解压软件包
2.编译安装
3.生成配置文件
一般该目录下应该有config.mc的文件,如果没有则创建新文件config.mc。 然后运行:
该命令将在该目录下生成config.cf文件。 4.安装Sendmail [root@email Sendmail]# sh Build install 将config.cf拷贝到/etc/mail目录下,并改名为Sendmail.cf: [root@email mail]#cp /usr/src/Sendmail-8.11.4/cf/cf/ config.cf /etc/mail/Sendmail.cf 四. Sendmail的配置 配置Sendmail的步骤如下。 1.在/etc/mail目录下创建access文件,内容如下: 127.0.0.1 RELAY 202.99.11 RELAY 这里表示允许本机和202.99.11.0网段中的机器通过该邮件服务器的转发邮件。其中202.99.11应该是您拥有的局域网络IP网段的IP地址,只需要写网络部分即可。比如说您的用户有多个网段,只需要在其中设置多个网段即可: 127.0.0.1 RELAY 202.99.11 RELAY 200.200.201 RELAY 2.对access文件生成易于检索的库文件格式: [root@email mail]# makemap hash access.db < access 创建文件/etc/mail/local-host-names,其内容为本机的拥有的域名信息,因为在上面的DNS配置文件中该服务器有一个域名: email.linuxaid.com.cn,并且MX记录也指向该域名,因此该服务器就有2个域名,分别为email.linuxaid.com.cn 和linuxaid.com.cn,这样用户才可以使用someone@linuxaid.com.cn这样的地址收发邮件,故该文件应该包含入下内容: linuxaid.com.cn. mail.linuxaid.com.cn. 3.创建别名数据库。在/etc/mail/aliases目录下创建文件aliases,内容如下:
然后生成aliases库: [root@email mail]# newaliases 然后,就可以按如下方式启动Sendmail了: [root@email mail]# /usr/sbin/Sendmail -bd -q20m 在第一次启动时可能出现如下的错误信息: 554 5.0.0 /etc/mail/Sendmail.cf: line 41: unknown configuration line "" 554 5.0.0 /etc/mail/Sendmail.cf: line 60: unknown configuration line "" 不要紧张,只需要使用vi编辑器将这些行删除即可,其实41和60等行都是空白行而已。删除以后再重新启动就应该没有问题了。 五. QPopper的安装配置 QPopper是Unix/Linux环境下的POP3服务器,该软件配合Sendmail使用。其主要功能是实现支持用户通过POP3接收信件。安装和配置Qpopper的主要步骤如下: 1.创建从/usr/mail指向/var/spool/mail/的链接 [root@email src]# ln -s /var/spool/mail/ /usr/mail 2.解压QPopper软件包 [root@email src]# tar xvfz QPopper4.0.3.tar.gz [root@email src]# cd QPopper4.0.3 3.编译安装QPopper
安装成功以后,QPopper将会被安装在/usr/local/sbin/目录下。设置inetd启动QPopper。编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加如下内容: pop-3 stream tcp nowait root /usr/local/sbin/popper QPopper -s然后查找inetd进程ID号: [root@email QPopper4.0.3]# ps ax|grep inetd 336 ? S 0:00 inetd 16872 pts/0 S 0:00 grep inetd 找到inetd进程号为226。然后重新启动inetd进程, 重新读取配置文件: [root@www QPopper4.0.3]# kill -HUP 336 这时候查看系统服务端口号: [root@email QPopper4.0.3]# netstat -ln|grep 110 tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 则说明110端口已经开始正常服务。 六. 测试邮件服务器 接下来是测试邮件服务器的邮件发送/接收功能。注意,在测试时,不要在只对本地用户进行测试。例如,用户的域为abc.com,测试时,不要只在邮件服务器上通过mail、elm等程序测试user1@abc.com用户。因为,此时user1是本地用户,所以邮件服务器可以对其进行Relay。用户应该从局域网上的另一台机器使用Outlook等邮件客户端对服务器进行收发测试。 这种配置对于IP固定用户没有问题,只需要在access文件中指定其固定IP即可,而对于需要支持流动用户,如拨号用户的应用则不大适合,因为如果完全打开RELAY功能可能导致邮件服务器的称为垃圾邮件的转发站。 解决用户IP不固定问题有2种方案,一种为采用SMTP认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(Dynamic Relay Authorization Control,DRAC),其工作原理为: 拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则DRAC自动在access.db中加入刚才收邮件用户的IP,并允许此IP可以发信。不过, 30分钟内,此IP不发/收邮件的话,DRAC将从access.db中删除此IP。此种机制保证拨号用户在没有SMTP认证的情况下,也可以通过远程邮件服务器发送电子邮件。 |
| [返回上一页] [打 印] |
|
上一篇文章:监控sendmail邮件系统中的用户邮件 | 下一篇文章:Sendmail + sasl2安装笔记 |