问题
某公司有员工700余人,分布在北京总部及全国各地的分公司,为保证电子信息传递的及时、稳定性,减少业务沟通故障,要求构建一套自主管理的电子邮件系统。本案例要求沿用练习一,基于Postfix软件来实现发信功能。
需要完成的配置任务如下:
1)安装并配置postfix软件,适用于tedu.cn 邮件域
2)添加两个邮箱账号:nick、hunter
3)用户nick可以通过 telnet 给用户hunter发送电子邮件
4)检查用户hunter的邮箱目录,可以查看收到的邮件
方案
postfix是RHEL6系统中自带的软件包,主要用来实现SMTP协议,提供电子邮件的发送和传递。主要的配置文件位于/etc/postfix/main.cf,需要调整配置时可以直接修改这个文件,也可以用postconf辅助工具。
关于postconf工具的常见用法:
1)列出当前有效配置:postconf
2)列出非默认的配置:postconf -n
3)列出默认配置:postconf -d
4)修改指定的配置参数:postconf -e ‘参数1=值1,值2…’ …
主配置文件main.cf中的配置参数写法:参数1=值1,值2。若要了解所有可用配置参数的用法说明,可以执行man 5 postconf查阅手册文档。
[root@mail ~]# man 5 postconf
POSTCONF(5) POSTCONF(5)
NAME
postconf - Postfix configuration parameters
SYNOPSIS
postconf parameter ...
postconf -e "parameter=value" ...
.. ..
配置参数的多个值之间允许以逗号或空格分开,也可以写到下一行,但是需要注意,换行写参数值的时候,行首至少要留一个空格或Tab制表位,否则会被视为下一个配置参数而出错。
默认情况下,postfix服务器使用本机的系统用户作为电子邮箱的用户,因此只要正常添加系统用户并设置密码,也就相当于添加了电子邮箱用户。
步骤
实现此案例需要按照如下步骤进行。
步骤一:安装 postfix 软件包
[root@mail ~]# yum -y install postfix
.. ..
[root@mail ~]# rpm -q postfix
postfix-2.6.6-2.2.el6_1.x86_64
步骤二:简化、调整主配置文件,启动 postfix 服务
1)简化main.cf配置文件
[root@mail ~]# cd /etc/postfix/
[root@svr5 postfix]# postconf -n > tmp.txt
[root@svr5 postfix]# mv main.cf main.cf.origin
[root@svr5 postfix]# mv tmp.txt main.cf
2)修改main.cf配置,以满足tedu.cn邮件域要求
[root@mail ~]# vim /etc/postfix/main.cf
.. ..
#inet_interfaces = localhost //注释掉此行
myhostname = mail.tedu.cn
mydomain = tedu.cn //邮件域
myorigin = $mydomain //显示的发件域
mydestination = $mydomain, $myhostname //本地投递域
home_mailbox = Maildir/ //邮箱类型
.. ..
3)启动postfix服务,并设为开机自动运行
[root@mail ~]# service postfix restart
[root@mail ~]# chkconfig postfix on
[root@mail ~]# netstat -antp | grep :25 //确认监听状态
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 5927/master
步骤三:添加电子邮箱账号
1)添加测试用户nick,将密码设为1234567
[root@mail ~]# useradd nick
[root@mail ~]# echo 1234567 | passwd --stdin nick
2)添加第二个测试用户hunter,将密码也设为1234567
[root@mail ~]# useradd hunter
[root@mail ~]# echo 1234567 | passwd --stdin hunter
步骤四:使用mail 命令测试发信(nick给hunter)
未做明确配置时,mail命令默认将本机作为发信、收信的服务器,所以此步骤中的测试操作在邮件服务器本机完成。
1)以用户nick的身份给hunter发送一封测试邮件
[root@svr5 ~]# echo "Mail Data." | mail -s "Test Mail 1" -r [email protected] [email protected]
2)检查 hunter 的邮箱目录、确认收到邮件
若nick提交的邮件发送成功,则收件人hunter的家目录下的Maildir/new/子目录下可以找到新收到的电子邮件文档:
[root@mail ~]# ls ~hunter/Maildir/new/ //新邮件列表
1379059530.V802I3ec129M716267.mail.tedu.cn
可以用cat等命令直接阅读对应的邮件文档,或者使用mail –f来加载邮箱:
[root@svr5 ~]# mail -f ~hunter/Maildir/
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/home/hunter/Maildir/": 1 message 1 new
>N 1 [email protected] Thu Dec 17 04:22 17/510 "T"
& p 1
Message 1:
From [email protected] Thu Dec 17 04:22:47 2015
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Thu, 17 Dec 2015 04:22:47 +0800
From: [email protected]
To: [email protected]
Subject: Test Mail 1
User-Agent: Heirloom mailx 12.4 7/29/08
Content-Type: text/plain; charset=us-ascii
Status: RO
Mail Data.
& q
[root@svr5 ~]#
注意:用户家目录下的邮箱目录Maildir不需要手动创建,实际上当此用户收到第一封邮件的时候,postfix会自动建立此目录。