当前位置: 主页 > 服务器技术 > Mail服务器 > sendmail安装详细步骤

sendmail安装详细步骤

时间:2009-11-25来源:图片处理网 点击:
    sendmail服务器在RHEL4中是被默认安装的,软件包的名称是sendmail,可以使用rpm命令来查看,m4软件包提供了配置sendmail服务器必需的工具程序,与sendmail软件包一同默认安装在系统中,这两个软件包都在系统的第2张光盘中,如果没有安装的话,则安装上去。
    # rpm -qa | grep sendmail
    sendmail-8.13.1-2
    # rpm -qa | grep m4
    m4-1.4.1-16
    另外在RHEL4的第4张安装光盘中,包括了文件名以sendmail开始的3个软件包,这些软件包都是与sendmail服务器相关的,需要安装上去。
    # mount /dev/cdrom /media/cdrom
    # cd /media/cdrom/RedHat/RPMS/
    # ls sendmail*
    sendmail-cf-8.13.1-2.i386.rpm sendmail-doc-8.13.1-2.i386.rpm
    sendmail-devel-8.13.1-2.i386.rpm
    # rpm -ivh sendmail*
    warning: sendmail-cf-8.13.1-2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
    Preparing... ########################################### [100%]
    1:sendmail-doc ########################################### [ 33%]
    2:sendmail-cf ########################################### [ 67%]
    3:sendmail-devel ########################################### [100%]
二、启动senmdmail服务
    # service sendmail start
    Starting sendmail: [ OK ]
    Starting sm-client: [ OK ]
    sendmail服务器的运行将启动sendmail和sm-client两个服务程序。
    配置文件sendmail.cf和sendmail.mc
    sendmail的主配置文件使sendmial.cf,由于该文件的格式很难理解,所以基本上不直接对它进行编辑,以免出错。正因为如此,sendmail的开发人员提供了容易理解和配置的sendmail.mc文件,我们可以通过修改这个配置文件,然后使用m4命令由sendmail.mc文件生成sendmail.cf文件。
    开启sendmail服务器的网络端口
    sendmail服务器出于安全考虑,默认只对lo网络端口提供服务,为了使服务能够为主机的的所有网络接口提供服务,需要在sendmail.mc文件中进行配置的修改。
    # vi /etc/mail/sendmail.mc
    //找到下列这一行
    DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA‘)dnl
    //修改为:
    DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA‘)dnl
    修改后,需要将sendmail.mc文件生成sendmail.cf文件。
    # cd /etc/mail/ //为配置文件所在目录
    # m4 sendmail.mc > sendmail.cf
    在sendmail服务器中,使用access.db数据库进行基于主机地址的访问控制,为了安全起见,sendmail默认关闭了为除本机以外的任何客户端RELAY邮件的功能,在现实使用中,可以打开其为本地网络RELAY邮件的功能,通过修改access文件来实现。
    在sendmail下的.db文件中,都会对应有一个文本文件叫数据库配置文件,它是用来进行管理的。当我们对它进行相应的配置后,需要使用makemap命令将数据库配置文件生成.db的数据库文件,因为sendmail服务器只能识别.db的数据库文件的配置内容。
    # vi /etc/mail/access
    192.168.0 RELAY //允许192.168.0.0网段的所有主机RELAY.
    # makemap hash access.db <access
    在sendmail服务器的配置目录中,local-host-names文件用于设置邮件服务器提供邮件服务的域名,我们可以在这里指定sendmail服务器所负责接收邮件的域。
    # vi /etc/mail/local-host-names //添加一行
    mail.zhen.com
    设置邮件别名
    在sendmail服务器中,使用aliases机制实现邮件别名和邮件群发功能,在/etc目录下同时存在名为aliases和aliased.db的两个文件,aliases文件是文本文件,内容都是可编辑的,aliases.db文件是数据库文件,是由aliases文件生成的。
    首先需要建立两个测试用户,然后才可以设置别名
    # vi /etc/aliases
    //在文件尾添加一行:
    aa: bb //为邮件用户bb设置别名aa,将发往aa的邮件转发到bb用户的邮箱中。
    配置完成后使用下列命令将其转换为sendmail可以识别的格式:
    # newaliases
    当对所有的配置完成后,需要重新启动服务。
    # service sendmail restart
    查看端口的监听状态
    # netstat -tnlp | grep :25
    tcp 0 0 0.0.0.0:25 0.0.0.0:* LIST
三、发信测试
    # telnet localhost 25 //连接本机的25端口
    Trying 127.0.0.1...
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is ‘^]‘.
    220 mail.zhen.com ESMTP Sendmail 8.13.1/8.13.1; Tue, 17 Jun 2008 10:12:18 0800
    mail from:root@mail.zhen.com //设置发信人的地址
    250 2.1.0 root@mail.zhen.com... Sender ok
    rcpt to:qq@mail.zhen.com //设置收信人的地址
    250 2.1.5 bb@mail.zhen.com... Recipient ok
    data //指明邮件正文开始
    354 Enter mail, end with "." on a line by itself
    subject: //指明邮件主题
    subject:hello bb
    nihao bb welcome!
    . //用点号表示结束
    quit //表示退去
    # su - bb //切换到bb用户,进行收信
    在上面我们给bb设置了别名,那现在我们验证一下是否可以
    # telnet localhost 25
    mail from:root@mail.zhen.com
    rcpt to:aa@mail.zhen.com
    data
    subject:nihao aa
    welcom welcome welcome
    .
    quit
    下面我们切换到aa里面去看看
    # su - aa
    $ mail
    No mail for aa
    去bb中看看
    # su - bb
    $ mail
    N 3 root@mail.zhen.com Tue Jun 17 10:19 13/501 "nihao aa"
    & 3
    Message 3:
    From root@mail.zhen.com Tue Jun 17 10:19:58 2008
    Date: Tue, 
    2008 10:19:19 0800
    From: root <root@mail.zhen.com>
    X-Authentication-Warning: mail.zhen.com: benet02 [127.0.0.1] didn‘t use HELO protocol
    subject: nihao aa
    welcom welcome welcome
    可以看出我们设置的别名生效了。
四、安装及配置可以用于收信的服务器dovecot
    sendmail服务器并不为MUA软件提供收取邮件的功能,因此系统中需要单独安装实现POP3或IMAP功能的服务器程序。
    安装dovecot软件包,在系统的第4张光盘中。
    # rpm -ivh dovecot-0.99.11-2.EL4.1.i386.rpm 
    warning: dovecot-0.99.11-2.EL4.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
    Preparing... ########################################### [100%]
    1:dovecot ########################################### [100%]
    有时会存在依赖关系,应找到相应的依赖的软件包逐一安装上去。
    修改配置文件
    默认情况下,dovecot服务器可以提供IMAP和POP3服务,但是默认只提供IMAP服务,因此需要在dovecot配置文件中进行配置的修改
    # vi /etc/dovecot.conf 
    //找到下列一行
    #protocols = imap imaps
    并修改为:
    protocols = imap imaps pop3 pop3s
    启动dovecot服务,并查看开启状态
    # service dovecot start
    # netstat -tnlp | grep dovecot
    tcp 0 0 :::993 :::* LISTEN 23037/dovecot 
    tcp 0 0 :::995 :::* LISTEN 23037/dovecot 
    tcp 0 0 :::110 :::* LISTEN 23037/dovecot 
    tcp 0 0 :::143 :::* LISTEN 23037/dovecot 
    设置dovecot在开机时自动启动
    # chkconfig --list dovecot
    dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
    # chkconfig --level 2345 dovecot on
 
    下面我们可以使用OE进行邮件的收发测试
    打来OE,设置邮箱账号,选择“工具”—“账号”,添加邮件,在显示名中填写你的用户名bb,电子邮件地址填写bb@mail.zhen.com,在电子邮件服务器名中设置接收和发送邮件的邮件服务器地址接收邮件服务器为:192.168.0.11发送邮件的服务器为:192.168.0.11,下面按向导完成
    下面就可以发送邮件了
    指明收件人为:root@mail.zhen.com
    填写相关内容后,点击发送。
    这时回到服务器中,可以看到下面一条信息
    You have new mail in /var/spool/mail/root
    然后查看一下:
    # mail
>N 4 bb@mail.zhen.com Tue Jun 17 10:42 24/761 "qqqqqqqqqqqq"
    & 4
    Message 4:
    From bb@mail.zhen.com Tue Jun 17 10:42:21 2008
    From: "bb" <bb@mail.zhen.com>
    To: <root@mail.zhen.com>
    Subject: qqqqqqqqqqqq
    Date: Tue, 17 Jun 2008 10:27:34 0800
    MIME-Version: 1.0
    Content-Type: text/plain;
    charset="gb2312"
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Mailer: Microsoft Outlook Express 6.00.3790.1830
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830
    Content-Transfer-Encoding: 8bit
    X-MIME-Autoconverted: from base64 to 8bit by mail.zhen.com id m5H2gLOo023051
    222222222
    222222222
    22222222
    sendmail服务器的用户管理
    邮件服务器提供发送邮件的功能是很正常的,但是如果为所有人都能够无条件地发送邮件是很危险的,非常容易产生垃圾邮件,因此我们可以在sendmail服务器中设置发送邮件的用户认证,当用户使用MUA软件通过SMTP向邮件服务器发送邮件时,邮件服务器会要求用户提供用户账号和口令进行身份认证,只有通过身份认证的用户才能够通过邮件服务器向外部发送邮件。
    在sendmail服务器中,使用sasl的第2版作为SMTP的认证方式
    首先查看系统中有没有安装sasl的相关软件包
    # rpm -qa | grep cyrus-sasl
    cyrus-sasl-md5-2.1.19-5.EL4
    cyrus-sasl-2.1.19-5.EL4
    cyrus-sasl-plain-2.1.19-5.EL4
    cyrus-sasl-devel-2.1.19-5.EL4
    cyrus-sasl-gssapi-2.1.19-5.EL4
    如果系统没有安装的话,需要使用rpm命令安装一下,软件包在系统的第3张光盘中。

    我们需要编辑一下配置文件sendmail.mc来打开sasl2的认证功能
    # vi /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
    //并把修改为:
    TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)
dnl
    注意:在sendmail.mc文件中,行首的dnl表示该行为注释行,是无效的,因此通过去除行首的dnl字符串可以开启相应的设置行。
    然后要重新生成sendmail.cf文件
    # cd /etc/mail
    # m4 sendmail.mc > sendmail.cf
    # service sendmail restart
    在"/usr/lib/sasl2/"目录中的Sendmail.conf配置文件设置了使用saslauthd服务程序提供用户的认证服务,我们需要编辑一下配置文件
    # vi /usr/lib/sasl2/Sendmail.conf
    //在文件中添加下列一行
    mech_list:login plain digest=md5
    启动saslauthd服务,并设置其开机自动启动
    # service saslauthd start
    Starting saslauthd: [ OK ]
    # chkconfig --level 2345 saslauthd on
    为了演示效果我们可以编辑一下"/etc/mail/access"文件
    # vi /etc/mail/access
    //删除下行
    192.168.0 RELAY
    然后重新生成access.db文件
    # makemap hash /etc/mail/access.db </etc/mail/access
    重新启动sendmail服务
    # service sendmail restart
    下面我们验证一下效果
    打开OE,发送邮件,会发现发送不出去,出现信息:
    由于服务器拒绝接受发件人的电子邮件地址,这封邮件无法发送。发件人的电子邮件地址是bb@mail.zhen.com">“bb@mail.zhen.com”。主题 ‘fdsaf‘, 帐户: ‘192.168.0.11‘, 服务器: ‘192.168.0.11‘, 协议: SMTP, 服务器响应: ‘530 5.7.0 Authentication required‘, 端口: 25, 安全(SSL): 否, 服务器错误: 530, 错误号: 0x800CCC78
    这是我们知道到"工具"—"帐户"—"属性"在弹出的对话框中,选择"服务器",在最下面的"我的服务器要求身份验证"前面的框中打勾,这时再发送邮件,就可以发送出去了。
站长资讯网
. TAG: SENDMAIL
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言