第 10章配置电子邮件服务器本章内容
电子邮件工作原理
配置 sendmail
配置 POP3
使用邮件客户机
实现 Web Mail
17.1 电子邮件工作原理
电子邮件服务概述
相关协议
17.1.1 电子邮件服务概述
电子邮件地址使用如下格式:
username@domainname
在 Red Hat Enterprise Linux 中,用户邮箱文件为,
/var/spool/mail/username
一个电子邮件有两部分组成:
头部( head)
正文( body)
头部包括发送方、接收方、发送日期、邮件主题等,正文是要发送的消息内容。
17.1.1 电子邮件服务概述
一个电子邮件系统通常由以下几部分组成:
邮件用户代理( MUA,Mail User Agent)
邮件传输代理( MTA,Mail Transfer Agent)
本地投递代理( LDA,Local Dilivery Agent)
邮件发送的基本步骤
1,邮件用户在客户机使用 MUA撰写新邮件,并将写好的邮件提交到自己的 MTA上的缓冲区中;
2,MTA每隔一定时间发送缓冲区中的邮件队列 。 MTA根据邮件的接收者地址,使用 DNS服务器的 MX记录解析邮件地址中的域名部分,从而决定将邮件投递到哪一个目标主机;
3,目标主机上的 MTA收到邮件以后,根据邮件地址中的用户名部分判断用户的邮箱,并使用 LDA将邮件投递到该用户的邮箱中 。
4,该邮件的接收者在登录到自己的邮件服务器时,会探测到这封新邮件,用户可以阅读邮件或者使用 POP3协议将邮件下载到本地计算机
17.1.2 协议
电子邮件在网络上 MTA之间传输,使用的应用层协议为简单邮件传输协议( SMTP),该协议默认在 TCP 25端口上工作 。
POP3( Post Office Protocol 3)称为邮局协议第
3版,该协议负责把用户的电子邮件信息从邮件服务器传递到用户的计算机上。
Internet消息访问协议( IMAP)能够在线阅读邮件信息而不将邮件下载到本地
17.2 配置 sendmail
在 Linux平台上使用最多的 SMTP服务器是
sendmail
sendmail配置文件
配置 sendmail服务器
17.2.1 sendmail配置文件
sendmail使用下列配置文件:
/etc/mail/sendmail.cf,sendmail主配置文件
/etc/mail/access.db,sendmail访问数据库文件
/etc/mail/aliases:邮箱别名
/etc/mail/local-host-names,sendmail服务器别名
/etc/mail/mailer.conf:邮寄配置程序
/etc/mail/mailertable:邮件分发列表
/etc/mail/virtusertable:虚拟用户和域列表
17.2.1 sendmail配置文件
sendmail的主配置文件 sendmail.cf控制着 sendmail
的所有行为,使用了大量的宏代码进行配置
sendmail系统提供了一个更容易阅读理解的宏文件
sendmail.mc,通常编辑该文件并转换为
sendmail.cf
17.2.2 配置 sendmail服务器
修改 sendmail.mc文件,使得 sendmail可以监听正确的网络接口
将 sendmail.mc文件编译为 sendmail.cf文件,
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
为使邮件服务器可以收到其他邮件服务器发来的邮件,需要添加 DNS的 MX记录
为转发邮件到其他邮件服务器,应该修改 access文件或启用 smtp验证功能
Sendmail基本配置步骤
修改 /etc/mail/sendmail.mc文件,使得 sendmail可以监听正确的网络接口
将 sendmail.mc文件编译为 sendmail.cf文件,方法是运行命令:
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
修改 /etc/mail/sendmail.cf文件,修改,Cw”开头的行
修改 DNS数据库文件,添加 MX资源记录
重新启动 sendmail服务
17.2.3 邮件中继和 SMTP验证
sendmail邮件服务器默认只监听本地回环地址
127.0.0.1,在启用了对外部 IP地址的监听之后,
默认也只允许来自于或发送到本地地址的邮件
在需要进行邮件中继时,可以使用以下两种设置
使用 /etc/mail/access.db文件对指定的网络或主机进行邮件中继
使用 SMTP验证机制对指定的用户进行邮件中继设置邮件中继
/etc/mail/access.db是一个非明文文本的数据库文件,
需要先修改 /etc/access文件,然后使用 makemap命令转换成对应的数据库文件
默认的 /etc/access文件内容如下:
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
入口可以是域名,IP地址和子网以及邮件地址,
处理动作可以是,RELAY,REJECT,DISCARD
设置 SMTP验证
1,修改 /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
2,使用 m4命令将 sendmail.mc文件编译为 sendmail.cf文件
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3,重新启动 sendmail服务以应用新的设置:
# service sendmail restart
4,运行以下命令启动 saslauthd服务:
# service saslauthd start
17.3 配置 POP3
1,执行以下命令检查 dovecot软件包的安装情况,如果没有安装可以从 RHEL 4的第 4张光盘中找到该软件包 。
# rpm -q dovecot
2,修改配置文件 /etc/dovecot.conf,并设置如下行:
protocols = pop3
3,运行以下命令启动 dovecot服务:
# service dovecot start
4,为了使 dovecot服务在系统启动时自动运行,执行以下命令进行设置:
# chkconfig --level 35 dovecot on
17.4 邮件服务器测试
管理员使用 telnet工具连接到 SMTP服务器和 POP3
服务器,并使用相关命令收发邮件,可以进行邮件服务器的故障诊断和排除
smtp命令:
helo,标识发件人自己的身份
mail form,初始化邮件发送,并注明发件人地址
rcpt to:标识收件人,可以有多行
data:数据输入
help:获取帮助
quit:退出
auth login:身份验证
17.4 邮件服务器测试
常用 POP3命令:
user:输入用户名
pass:输入口令
list:列出邮件列表
retr:读取邮件内容
dele:删除邮件
quit:退出
17.5 使用邮件客户机
使用 mail命令
使用图形化邮件客户工具:
Evolution
Mozilla
Kmail
17.5.1 使用 mail命令
mail命令用于阅读和发送电子邮件,不加任何选项运行 mail命令可以阅读新邮件 。
阅读后的邮件默认会从服务器上删除,并保存在用户主目录下的 mbox文件中
使用 mail -f命令可以阅读指定的邮箱文件中的邮件内容
发送邮件:
mail username@domainname
17.6 实现 Web Mail
配置 Open WebMail
使用 Open WebMail处理邮件
17.6.1 配置 Open WebMail
可以从站点 http://www.openwebmail.org/ 下载
Open Webmail软件包
Red Hat Linux 9的 perl解释器有点问题,为了正常运行 Open WebMail,需要首先更新 perl解释器,
这需要安装以下几个软件包:
perl-CGI-2.81-88.i386
perl-Compress-Zlib-1.21-RH9.i386
perl-suidperl-5.8.0-88.i386
perl-Text-Iconv-1.2-RH80.i386
然后安装 Open WebMail软件包配置 Open WebMail
1,首先执行 Open WebMail的初始化:
/var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
2,根据给出的提示信息修改配置文件
3,重新运行上一个命令
4,启动 httpd服务器以提供 Web服务
17.6.2 使用 Open WebMail处理邮件
在客户机上启动 Web浏览器,并在浏览器中输入如下地址:
http://domainname/cgi-bin/openwebmail/openwebmail.pl
17.6.2 使用 Open WebMail处理邮件日历功能本章小结
理解邮件服务器的工作方式
配置一个简单的 sendmail服务器
使用 Open Webmail实现 Web Mail功能