背景知识
sendmail是最重要的邮件传输代理程序。,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱。
当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址:ideal@linuxaid.com.cn,那么sendmail首先确定这个地址是用户名(ideal)+机器名(linuxaid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。
以下是我对sendmail收发邮件服务的一些简单配置---记录。
一、安装
1、查看sendmail相关软件包的安装情况。
Sendmail-8.13.8-8.1.e15_7 是sendmail服务的主程序包,服务器端必须安装该软件包。 2、其他sendmail相关的软件包,为了方便起见,我用yum一键安装 查看安装结果 sendmail-8.13.8-8.1.el5_7 :sendmail服务的主程序包 sendmail-devel-8.13.8-8.1.el5_7 :sendmail服务器开发工具软件包 sendmail-doc-8.13.8-8.1.el5_7 :sendmail服务器的文档说明包 sendmail-cf-8.13.8-8.1.el5_7 :sendmail服务器宏文件包 以上软件包是由yum一键安装的,如果用rpm安装的话,可以不必全部安装,根据需要来。 3、sendmail服务器进行基本的配置以后,mail server就可以完成E-mail的发送,但是如果想要使用pop3和IMAP协议进行接受邮件的话,就要安装dovecot软件包,如下: 查看安装情况: 注:m4-1.4.5-3.el5.1 是宏处理过滤软件包。只有安装了这个软件包,才能用M4工具来作预处理器,后面再配置sendmail过程中,也要利用m4工具将编辑后的sendmail.mc文件内容重定向到sendmail.cf文件中,这样可以避免直接编辑sendmail.cf文件(因为sendmail.mc文件的可读性远远大于sendmail.cf文件,并且在默认情况下,sendmail提供sendmail.mc文件模板,所以,我只需要通过直接修改或编辑sendmail.mc文件,然后再用m4工具将结果导入到sendmail.cf文件即可。) 启动dovecot服务 查看25、110、143端口是否已经启动了!都处于listen状态,说明已经启动了 二、测试环境: 环 境:VMware中wdos系统服务器主机一台,本地XP客户端一台(当然,也可以用其他系统或者虚拟机上的其他客户端)。要求服务器和客户端相互连通(ping通)。且服务器配置了DNS服务,能正常正反向解析。 案例要求:某公司局域网内网段是192.168.1.0/24,域名:hellowdos,DNS服务和sendmail服务IP地址是192.168.1.106。.为了工作效率和公司信息的安全性,要求公司内部成员使用sendmail收发邮件。 1、 配置dns服务器文件:正反向解析区域 1、 配置正反向解析区域文件: Vi /var/named/chroot/var/named/hellowdos.com.zone Vi /var/named/chroot/var/named/192.168.1.zone 重新启动named服务 测试能否正常解析 测试服务器和客户端是否连通。 修改/etc/mail/sendmail.mc文件。 将116行的侦听的IP地址127.0.0.1改为0.0.0.0来侦听所有IP地址(或者改为公司内部网段192.168.1.0也可以),但0.0.0.0的话可以扩大侦听范围。 将155行的域名改为我自己的域名。 现在就要用到M4工具将sendmail.mc文件重定向到sendmail.cf文件中。 添加主机名称:local-host-names文件用来定义收发邮件的主机别名,默认情况下在/etc/mail/目录下,为了使sendmail服务正常工作,必须在该文件中添加主机名或主机别名,否则会提示错误。 建立用户,密码123456. 三、验证和测试(工具:outlook express) 点击:开始-所有程序- outlook express 新建邮件(我是自己发送给自己,当然,也可以再创建一个用户,测试发送给另一用户) 成功接收:
双击,打开邮件。
可能错误及解决:如果出现一下错误,可能是防火墙的原因,可以把防火墙关了试试。