Sendmail简单搭建与应用

  1. 云栖社区>
  2. 博客>
  3. 正文

Sendmail简单搭建与应用

科技小能手 2017-11-12 17:59:00 浏览727
展开阅读全文
环境介绍:两台linux系统(一台为BIND服务器,提供DNS服务,一台为邮件服务器),一台XP测试用)
邮件系统的特点和功能
邮件用户代理,简称MUA(Mail User Agent),是面向用户操作的软件,通常也称为邮件客户端软件。MUA软件的功能是为邮件用户提供发送、接收和管理电子邮件的界面。在Windows平台中常用的MUA软件有Outlook、Outlook Express、Foxmail等,在Linux平台中常用的MUA软件有Thunderbird、Kmail等。
邮件传输代理,简称MTA(Mail Transfer Agent),通常被称为邮件服务器软件。MTA负责接收MUA软件发送的邮件,并将邮件传输到其它MTA服务器中。Exchange和Sendmail等服务器软件都属于MTA。
从以上对邮件系统中角色的划分可以看出,邮件系统类似于其它C/S结构的网络应用,具有明确的客户端和服务器端,而邮件系统中使用的网络协议是比较有特点的。
电子邮件系统使用不同的网络协议进行电子邮件的发送和收取。
SMTP(Simple Mail Transfer Protocl,简单邮件传输协议)是用于发送邮件的协议,MUA使用SMTP将用户邮件发送到MTA服务器中,而MTA服务器之间信件的传递也需要使用SMTP。
邮件的收取可以使用POP(Post Office Protocol,,邮局协议)和IMAP(Internet Message Access Protocol,因特网消息访问协议)这两个协议实现。目前POP的最新版本是POP3,IMAP的最新版是IMAP4
Sendmail的安装:
Sendmail服务器在RHEL4系统中是被默认安装的,软件包的名称是sendmail,可以使用rpm命令查询sendmail软件包的安装状态,m4软件包提供了配置Sendmail服务器必需的工具程序,与sendmail软件包一同默认安装在系统中,sendmail和m4两个软件包都在RHEL4的第2张安装光盘中,如果系统中不存在这两个软件包,可以使用rpm命令进行手动安装。
wps_clip_image-911
在RHEL4的第4张安装光盘中,包括了文件名以sendmail开始的3个软件包,这些软件包都是与Sendmail服务器相关的,其中sendmail-cf和sendmail-doc需要进行手动安装。
wps_clip_image-1012
sendmail服务器在系统中比较完整的安装应包括以下软件包:
sendmail软件包是Sendmail服务器程序的安装包,是最重要的软件包
m4软件包中包括了配置Sendmail服务器的必要工具
sendmail-cf软件包中包括了重新配置Sendmail服务器的必要配置文件
sendmail-doc软件包中包括了Sendmail服务器的说明文档
Sendmail服务器程序在安装后并没有设置在系统启动时自动运行,可使用chkconfig命令设置该服务在系统运行级别3和5中自动启动:
wps_clip_image-1260
Sendmail的控制启动:
启动前的基本配置
请在启动Sendmail服务器前确保该邮件服务器的主机拥有完整的域名(可建立DNS记录或修改/etc/hosts文件)
wps_clip_image-1347
启动/停止/重启/Sendmail服务器
Sendmail 服务器使用名为sendmail的启动脚本进行程序的启动与停止,该脚本位于/etc/init.d目录中:
示: /etc/init.d/sendmail start/stop/restart/status
或 service sendmail start/stop/restart/status
wps_clip_image-1526
Sendmail 主要配置文件
Sendmail服务器的配置目录
Sendmail服务器使用的所有配置文件都保存在目录/etc/mail中,该目录中保存了Sendmail服务器运行所需要的配置文件以及库文件等多种类型的文件。
wps_clip_image-1641
在/etc/mail目录中,文件后缀是.cf的是服务器配置文件,文件后缀是.db的是服务器使用的数据库文件。
配置文件sendmail.cf和sendmail.mc
Sendmail服务器的主配置文件是sendmail.cf,该文件的格式在UNIX/Linux系统中的各类服务器中是公认的难于理解的,因此即使有经验的系统管理员也会避免直接去编辑sendmail.cf配置文件的内容。
由于sendmail.cf的难以配置,Sendmail的开发人员为Sendmail的管理者提供了更加容易理解和配置的sendmail.mc文件
一般情况下,系统管理员对sendmail.mc文件的内容进行设置,设置完成后使用m4命令由sendmail.mc文件的内容生成sendmail.cf文件。由于对sendmail.mc文件的配置依然有一定的难度,因此在第一次对sendmail.mc文件进行修改之前,最好先将该文件进行备份,以便发生配置错误时能够恢复为默认设置。
wps_clip_image-2071
通过sendmail,mc文件进行Sendmail服务器设置的一般步骤:
修改sendmail.mc文件中的设置内容
使用m4命令生成新的sendmail.cf文件
重新启动Sendmail服务器程序以便新的配置生效
注:从sendmai.mc文件生成sendmail.cf文件的m4命令需要在/etc/mail目录中执行
数据库配置文件和数据库文件
在Sendmail服务器中除了sendmail.cf主配置文件以外,还使用了许多数据库文件辅助进行Sendmail服务器的配置。在/etc/mail目录中所有扩展名为.db 的文件都是数据库文件,这些数据库文件的格式对于用户是不可读
wps_clip_image-2366
每个.db数据库文件在同一目录下都对应有同名的无扩展名文件,这些文件是用于系统管理员进行管理的,称为数据库配置文件
当管理员在数据配置文件(文本文件)中进行相应的设置后,需要使用makemap命令将数据库配置文件生成.db的数据库文件。Sendmail服务器只能识别.db的数据库文件中的配置内容。
示:makemap  hash  access.db <access
管理员进行sendmail数据库文件设置的一般步骤:
在数据库配置文件中进行内容的配置
使用makemap命令将数据库配置文件生成对应的数据库文件
重启Sendmail服务器,以便对数据库文件中的修改生效。
日志文件
在RHEL4系统中Sendmail服务器的日志文件位于/var/log目录中,文件名为maillog,通过该文件,管理员可以了解到Sendmail服务器的运行状态信息。命令tail –f命令可以观察日志文件内容的实时更新,特别适合于对服务器进行调试和错误检查:
wps_clip_image-2793
好了,现在我们正式进行Sendmail服务器的配置
域名设置:
在DNS服务器中添加A记录
在DNS服务器中建立相关MX记录
并保证解析正常:
wps_clip_image-2869
设置local-host-names文件
在Sendmail服务器的配置目录下,local-host-names文件用于设置邮件服务器提供邮件服务的域名
示:vi  /etc/mail/local-host-names
在文件末尾添加邮件服务器提供邮件服务的区域名:
wps_clip_image-3006
在local-host-names文件中设置域名后,sendmail服务器将对文件中设置的域名提供邮件服务
开启Sendmail服务器的网络接口
Sendmail服务器出于安全考虑,默认只对lo网络接口(IP地址为127.0.0.1)提供服务,为了使服务器能够为主机的所有网络接口(地址为0.0.0.0)提供服务,需要在sendmail.mc文件中进行配置的修改。
示:vi  sendmail.mc 
在末行模式使用“/”命令查找DAEMON_OPTIONS后并修改:
wps_clip_image-3245
Sendmail服务器的用户管理
设置SMTP的用户认证
邮件服务器提供发送邮件的功能是很正常的,但是如果为所有人都能无条件地发送(投递)邮件是很危险的,非常容易造成大量垃圾邮件的产生。因此在Sendmail服务器中需要设置发送邮件的用户认证,当用户使用MUA软件通过SMTP向邮件服务器发送邮件时,邮件服务器会要求用户提供用户帐号和口令进行身份认证,只有通过身份认证的用户才能够通过邮件服务器向外部发送邮件
RHEL3系统中提供的Sendmail服务器提供了SMTP的用户认证功能,但是默认的设置没有启用此功能,因此需要在sendmail.mc文件中进行相应的配置
示:vi  /etc/mail/sendmail.mc
同样也是使用/命令查找并修改:
wps_clip_image-3575
将相关行的注释字符dnl去掉使其生效。
wps_clip_image-3597
用户帐号
Sendmail服务器使用Linux系统中的用户帐号作为邮件帐号,因此为用户添加邮件帐号只需要添加Linux用户帐号即可
示: groupadd  mailuser   建立邮件用户组,组名为mailuser
Adduser  -g  mailuser –s /sbin/nologin +邮件用户名
        这里的-s /sbin/nologin是指定shell,使用此用户不能登录系统
wps_clip_image-3808
为所有邮件用户添加口令:
示:passwd  +用户名
设置邮件别名和邮件群发功能
在Sendmail服务器中使用aliases机制实现邮件别名和邮件群发功能,在/etc/目录下同时存在名为aliases和aliases.db的两个文件,aliases文件是文本文件,其内容是可阅读和可编辑的,aliases.db是数据库文件,是由aliases文件生成而来的
wps_clip_image-3992
在对/etc/aliases文件的内容进行修改后,需要执行newaliases命令,该命令会根据aliases文件的内容重新生成aliases.db文件。只有对aliases.db文件进行了更新,aliases文件中新的别名设置在系统中才会生效
在aliases文件中每行作为一个别名设置记录,记录的格式如下:
示:name:  addr_1, addr_2, addr_3……
在aliases记录的格式中name表示虚拟邮件帐号名(类似于Windows中的通讯组[ 主要是邮件用 ]),addr_N表示真实邮件帐号,aliases记录可实现邮件别名和邮件群发功能
示:vi  /etc/aliases
wps_clip_image-4297
更新aliases.db文件:
wps_clip_image-4315
访问控制的设置:
在Sendmail服务器中使用access.db数据库进行基于主机地址的访问控制,默认开启了对邮件服务器本机用户的邮件投递,即在Sendmail服务器所在主机中的用户可以任意发送邮件,而不需要进行任何身份认证
注:这里的意思打个比方说:新浪的邮箱用户需向163的邮箱发送邮件,此时就需要163邮件服务器是否允许新浪的邮件通过其进行转发了,这里的访问控制也就是这个意思,邮件我这里没有涉及到多台邮件服务器所以没有进行设置
示:vi  /etc/mail/access
wps_clip_image-4559
若对此文件进行了修改请使用makemap  hash  access.db  < access命令更新数据库
并重启Sendmail服务器使其生效
使用m4命令生成新的sendmail.cf文件:
wps_clip_image-4661
在Sendmail服务器,使用了sasl的第2版(sasl2)作为SMTP的认证方式,在/usr/lib/sasl2/目录中的Sendmail.conf(注意S是大写)配置文件设置了使用saslauthd服务程序提供用户的认证服务,因此当Sendmail服务器使用SMTP认证功能时,需要确保saslauthd服务程序正确运行
wps_clip_image-4827
重启Sendmail服务器程序,以便新的配置生效:
wps_clip_image-4855
这时可能会显示39行出错,我们进入/etc/mail/sendmail.cf文件,删除39行(此行为空,并无任何内容),再重启服务
示:vi  /etc/mail/sendmail.cf   使用set nu显示行号,并在命令模式下用dd命令删除39行
wps_clip_image-4984
wps_clip_image-4986
再次重启时便成功了
wps_clip_image-4998
使用netstat命令可以查询到Sendmail服务程序已经对所有网络接口的25进行了邮件服务的监听
wps_clip_image-5051
上图中的ntpl表示监听TCP端口号,若为nutp则为UDP端口号
通过在本机telnet邮件服务器的25端口可以验证邮件服务器的SMTP认证功能
wps_clip_image-5128
如果在250-AUTH开始的行中出现了LOGIN  PLAIN,则说明Sendmail服务器中设置的SMTP认证功能已经生效
邮局基本配置
安装POP3服务
Sendmail服务器并不为MUA软件提供收取邮件的功能,因此系统中需要单独安装实现POP3或IMAP功能的服务器程序
安装dovecot软件包
在RHEL4系统中自带了名为dovecot的RPM安装包,用于安装dovecot服务器,由于该服务器依赖的软件包较多,因此建议使用RHEL4系统中提供的软件包管理程序来安装dovecot软件包
示:system-config-packages
注:这是前辈们说的可我装的是RHEL4的DVD盘,直接用RPM安装并未出现前辈们说的情况,若真出现依赖性包很多时当然还是建议使用软件包管理程序装喽,我这里还是直接RPM咯!
wps_clip_image-5492
设置dovecot软件包
dovecot服务器的配置文件是dovecot.conf,保存在/etc目录下
dovecot服务器可以提供IMAP和POP3服务,但是默认只提供IMAP服务,因此需要在dovecot.conf配置文件中进行配置的修改
示:vi  /etc/dovecot.conf  使用/命令找到protocols,将注释符“#”去掉使此行生效,并添加pop3和pop3s协议
wps_clip_image-5690
wps_clip_image-5692
启动dovecot服务程序
对dovecot配置文件进行设置后,需要重启dovecot服务程序,以便新的配置生效
wps_clip_image-5751
设置dovecot服务的启动状态
dovecot软件包安装后默认设置不自动启动,需要使用chkconfig命令设置dovecot服务在运行级别3和5中自动启动,以保障邮件服务器的正常运行
wps_clip_image-5847
当dovecot服务程序启动后将监听110端口来提供POP3服务
wps_clip_image-5882
在XP上测试:
设置所有邮件用户为“我的服务器要求身份验证”
wps_clip_image-5919
wps_clip_image-5921
wps_clip_image-5923
测试邮件群发是否成功
由于都是在一台客户机上测试所以我所有邮件用户都在一台机器上登录的:
wps_clip_image-5970
wps_clip_image-5972
wps_clip_image-5974
wps_clip_image-5976
上图收到3封相同的邮件这便是分别发给test1,test2,test3用户的,由此证明群发邮件测试成功
安装配置Webmail
OpenWebmail是使用Perl语言编写的Webmail应用系统,可以很好地和Sendmail等邮件系统配合,构建功能强大的Webmail应用
修改系统的SELinux配置
在RHEL4系统中默认使用SELinux安全机制,造成了和许多应用系统的不兼容,OpenWebmail就是其中之一。因此,在安装OpenWebmail之前需要先禁用系统中的SELinux,具体操作为对/etc/sysconfig/目录中的文件selinux的内容进行修改:
示: vi  /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled
wps_clip_image-6336
在对selinux配置文件进行修改后,需要重启系统才能够使新的设置生效
wps_clip_image-6374
由于安装OpenWebmail将依赖于多个perl包,我这里将它们一次性一起安装便可不管它们的依赖关系,让它们自己去解决,呵呵!(注:这里需用到as4.0的实验光盘)
wps_clip_image-6460
建立dbm.conf文件
openweebmail 软件包将所有的文件都安装在目录/var/www/cgi-bin/openwebmail中,在该目录下的etc子目录中需要建立名为dbm.conf的配置文件并添加内容如下
示:vi  /var/www/cgi-bin/openwebmail/etc/dbm.conf
wps_clip_image-6622
初始化OpenWebmail系统
执行/var/www/cgi-bin/openwebmail/目录中的openwebmail-tool.cp程序,并使用—init选项进行OpenWebmail系统的初始化过程
示:/var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init
wps_clip_image-6787
通过Web服务器发布Webmail
OpenWebmail安装到RHEL4系统之后需要Apache服务器的配合才能为用户提供Webmail的访问界面
启动Apache服务器
RHEL4系统中默认安装了Apache服务器的软件包httpd,并且OpenWebmail系统也是安装在Apache服务器的目录/var/www/中的,在使用OpenWebmail之前,需要先确认httpd软件包已经安装,并确认httpd服务程序已经启动
wps_clip_image-7004
注:若你使用的源码安装的Apache则可将整个apache2目录cp至/var/www/目录下,并使用service命令启动httpd也可
访问OpenWebmail界面
注:http://mail.yunjing.com/cgi-bin/openwebmail/openwebmail.pl
wps_clip_image-7154
管理OpenWebmail应用系统
OpenWebmail安装后虽然能够为用户提供Webmail服务,但是其默认的语言设置等不一定适应用户的使用需求,因而要做进一步的配置
OpenWebmail的配置文件
OpenWebmail应用系统的主配置文件位于/var/www/cgi-bin/openwebmail/etc/目录中,文件名是openwebmail.conf,通过修改该文件中的配置项,可以修改OpenWebmail系统的默认设置
注:vi  /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
设置邮件服务器的域名为yunjing.com
wps_clip_image-7455
将OpenWebmail系统的默认语言由英文设置为简体中文
wps_clip_image-7487
将OpenWebmail系统中的图标由英文设置为简体中文
wps_clip_image-7518
即openwebmail.con文件进行修改配置后,不需要重启系统中的任何服务程序,用户只需要在Webmail界面中重新进行登录即可
验证对OpenWebmail的设置
wps_clip_image-7606
OpenWebmail中的个人设置
在OpenWebmail中可通过openwebmail.conf文件进行系统的默认设置,对于单个用户还可以在Web界面进行个人属性的设置,这样系统中的所有邮件用户都可以根据自己的喜好设置不同的风格和使用习惯
wps_clip_image-7730
wps_clip_image-7732
通过OpenWebmail发送邮件:
wps_clip_image-7753
使用mike用户查看邮件:
wps_clip_image-7769
在OpenWebmail中设置邮件过滤
用户登录OpenWebmail界面后,默认的工作区为收件箱,在该界面的工具栏中选择“邮件规则”图标,进入“编辑邮件过滤规则”界面
除了公共邮件过滤规则外,用户可自定义过滤规则,一个邮件过滤规则包括以下属性
优先级可以设置为从1-20的数字,默认值为10,数字越小规则的优先级越高,优先级越高的规则会优先被执行
过滤条件可以设置的值包括:发件人、收件人、主题、文件内容和附件等,可以为规则指定过滤条件中包含或不含设置的字符串内容,这样就可以明确表示出一个过滤条件
操作字段可设置为移动或复制,可以将符合过滤条件的邮件移动或复制到规则中的目的文件夹。目的文件夹可以设置为收件箱、草稿箱、废件箱、垃圾邮件箱、病毒邮件箱或直接删除
规则的启动标记设置了规则是否有效,对于暂时不使用的过滤规则可以设置为停用(即不勾选启用)
wps_clip_image-8149
wps_clip_image-8151
wps_clip_image-8153

本文转自 tomsjack  51CTO博客,原文链接:http://blog.51cto.com/tom110/192315

网友评论

登录后评论
0/500
评论
科技小能手
+ 关注