centos 6.6 系统中配置sendmail和dovecot

网上介绍sendmail的文章千百种,很少有跟着做下来一次成功的。多少都有些说的不准确的地方。

我给大家共享一下我经过实验环境测试,完全可行的方法。

1.软件准备

操作系统:centos6.6
我选择centos6.6,
以下软件,centos6.6全部自带,无需另外下载。
邮件系统:

cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64
sendmail-cf-8.14.4-9.el6_8.1.noarch
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64
m4-1.4.13-5.el6.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
sendmail-8.14.4-9.el6_8.1.x86_64
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64
dovecot-2.0.9-22.el6.x86_64

sasl这里,我要说一句,网上有人说“sendmail-8.13已经包含cyrus-sasl的功能,所没必要再安装cyrus-sasl”
大哥大姐们,没有cyrus-sasl用什么做认证.....

sendmail官方只是说,sendmail的rpm包默认已经支持了cyrus-sasl认证方式,也就是说,sendmail会在cyrus-sasl的工作目录下自动创建相关认证配置文件,并监听25号端口,就不用你去手动自己建立配置文件和监听端口了。

当有请求进入25号端口的时候,sendmail会自动找到/usr/lib/sasl2/Sendmail.conf读取认证方法。下面我会详细解释。

2.安装软件

rpm -ivh把上面软件全装上,都在光盘里呢,好装。

yum安装更方便

3.认证配置

pop3:网上说修改/etc/dovecot.conf文件,将第17行的:#protocols = imap imaps pop3 pop3s的#去掉。

其实不用,它默认已经启用了这些服务,除非你只想用dovecot-auth的认证,你可以改成protocols = none,否则不用改。
smtp:
注意,smtp稍微麻烦一下。

我讲下原理:
当用户请求进入25号端口后,sendmail调用cyrus-sasl的saslauthd进程,saslauthd要求对方输入本地系统用户的用户名和密码,当用户输入好后,saslauthd会去查找系统的/etc/shadow文件,密码确认无误,放行,告诉sendmail,这个用户合法,可以使用邮件服务来发邮件。
这时候你去/usr/lab/sasl2/下看看,sendmail已经做好了一个sendmail.conf文件,里面指明了:pwcheck_method=saslauthd,说明sendmail认证时就要调用saslauthd
所以要实现上述功能,就要设置cyrus-sasl的saslauthd,给它指定认证方式。
首先,进入/etc/sysconfig/,打开saslauthd的脚本,找到第7行的:
MECH=
等号后面不管写什么,我们都要改成:
MECH=shadow
保存
这样saslauthd才会去找shadow文件给用户做认证。
其实saslauthd还可以用自己的用户名和密码数据库做验证,但这样不方便,还要另外创建用户,不如直接用系统自身存在的用户名和密码。

4.Sendmail配置.

配置邮件服务器名称:
打开/etc/mail/local-host-names
加入你 @后面的邮箱地址。比如我这里是[email protected]
那么,你要在local-host-names文件里的第二行添加:
linuxedentest.com
保存
当然
local-host-names还可以设置邮箱别名,这个不多说,大家查文档看看。
改好后还要去你的dns服务器上,打上mx标志,添加A标记,用来解析dns名和地址。具体方法就要查查bind的设置方法了,或者win2003的dns设置方法。
配置sendmail.mc:
打开/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
把前面的dnl注释去掉,变成:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
上面两句的意思是:
放行那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件用户,无视access文件中的设置。
confAUTH_MECHANISMS,确定系统支持的认证方式。LOGIN PLAIN 方式下,outlook用的多。
还不算完,找到:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, )dnl
改成:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, )dnl
这样所有ip地址都可以通过smtp端口使用我们的邮件服务器了。
-----------------------------------------------------------
这里要说一句,不要改
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea‘)dnl
这句话!保持注释状态。
上面那句话,网上好多文章都说把Port=submission,改成Port=25,说是强制所有用户在25端口上做认证。
我不知道sendmail以前的版本是怎么样设置smtp认证的。sendmail8.13不用这么设置,这句话人家sendmail的意思是:取消注释后,一旦当25号端口被重定向或者被屏蔽,或者在25号端口打不开的情况下,马上使用587备用端口给用户做认证。
本来人家sendmail就已经打开了25端口(Port=smtp了已经),你却在这里还Port=25,把备用端口也改成25,这不是让sendmail的sm-client认
证进程和sendmail的主进程抢端口么....
-----------------------------------------------------------
到此为止,保存sendmail.mc
  
用m4重新生成sendmail.cf文件 
  
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 
启动dovecot进程:
/etc/init.d/dovecot start
启动saslauthd进程:
/etc/init.d/saslauthd start
启动sendmail进程:
/etc/init.d/sendmail start
把这些进程加入到启动脚本中去:
chkconfig dovecot on
chkconfig saslauthd on
chkconfig sendmail on
ok,所有设置全部完成,可以正常认证和收发邮件了。
本文如有不准确的地方,请各位海批~~~

时间: 2024-10-25 23:19:01

centos 6.6 系统中配置sendmail和dovecot的相关文章

CentOS 6.5系统中RPM安装配置MySQL数据库

一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内, 这样就增加了速度并提高了灵活性.MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策(本词条"授权政策"), 它分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作

CentOS 6.4系统中编译和升级内核

CentOS 6.4系统中编译和升级内核 [日期:2013-08-25] 来源:Linux社区  作者:vipshichg [字体:大 中 小] 可能因为以下几种原因,你可能需要对Linux kernel内核进行升级操作. 想要尝试一个新的内核模块 设备驱动需要新的内核功能模块支持 旧版本的内核有新的漏洞被发现 系统经常容易崩溃 不管因为什么原因,每一个Linux用户对Linux内核进行升级,是一个很重要的维系统护工作. 下面我们来学习在CentOS 6.4系统下,将Linux kernel 2

CentOS 6.5系统中安装配置MySQL数据库

就像Windows server 2003,2008中一般安装的是Sql Server 数据库,在linux系统中一般安装的是mysql数据库,而且Mysql数据库的第一个版本就是发行在Linux系统上的. 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL的SQL语言是用于访问数据库的

EWF在win7_x86_x64系统中配置

公司的一个控制系统运行在触摸屏工控机上,工控机安装的是32位windows 7 标准版操作系统,为了防止现场掉电损坏系统,需要将C盘用EWF(Enhanced Write Filter)进行RAM模式保护.以前只是在windows xp embedded系统下面做过类似操作,但在win7下面,尤其是32位操作系统下面没有试验过,期间网上搜集了很多安装说明,经过大半天的试验,终于能够成功对本地盘进行EWF保护.我将网上搜集的资料和软件进行了整理,现将配置过程总结如下: 1.用windows 系统管

CentOS 6.6 系统中文件类型,属性与权限

一.系统中的文件类型. 类型: ①'d'代表目录文件, dr-xr-xr-x.  5 root root  1024 2月  27 00:15 boot 'dr-xr-xr-x.'中的'd',就是表示这个文件为目录文件. ②'-'代表普通文件, -rwxr-xr-x. 1 root root   23408 10月 15 12:45 arch '-rwxr-xr-x.'中的'-',就是表示这个文件为普通文件. ③'b'代表块设备文件, brw-rw----. 1 root disk      7

如何在Windows系统中配置Mysql群集(Mysql Cluster)

Mysql群集(Cluster)简介 MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的.MySQL群集中有三种节点:管理节点.数据节点和SQL节点.群集中的某计算机可 能是某一种节点,也可能是两种或三种节点的集合.这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系. 管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件.它监控其他节点的工作状态,能够启动.关闭或重启某 个节点.其他节点从管理节点检索配置数据,当数据节点

使用Navicat for MySQL工具来连接centos 6.6系统中的MYSQL服务

第一步:安装好MySql服务,并启动MySql服务. 第二步使用MySql的账号登陆到MySql数据库中. 第三步:授予root账户以及对应的主机网段有连接数据库的权限. 第四步:安装Navicat for MySQ,双击安装好的客户端程序. 软件下载地址:http://www.navicat.com.cn/download/navicat-for-mysql 第五步:然后使用Navicat for MySQ来linux服务器中的MySql服务,设置好连接名.IP地址以及root账户的密码,提示

系统中参数的初始化 参数在系统中配置

1.我们来看这个需求,例如:我们上传图片.上传附件 需要放在服务器上的一个目录上,该目录在不同的操作系统下是不同的.因为我们在写java代码的时候就不能写死. 这个时候我们就要用到系统参数.在界面上自己去配置.这样在系统迁移的时候就不用改java代码了. 2.系统参数可以自己在页面配置.如下图所示: 我们可以设置这样一个参数entity.,设置一个界面,该界面可以针对自己需要改变的参数进行增删改操作. 3.这里涉及到该参数entity什么时候初始化的问题,上一篇文章我们写到过 我们可以写一个类P

XP系统中配置IIS服务器

操作系统版本与IIS的版本对应如下: Windows 2000 Server\Windows XP SP1:    IIS5.0    Windows XP SP1/SP2/SP3:    IIS5.1    Windows Server 2003:    IIS6.0    Windows Vista/Windows 7:    IIS7.0 此文主要演示XP系统配置IIS 1.首先下载IIS5.0 http://www.crsky.com/soft/22394.html 2.解压到本地目录