RHEL5中配置Sendmail邮件服务.docx

上传人:b****6 文档编号:4686786 上传时间:2022-12-07 格式:DOCX 页数:77 大小:75.92KB
下载 相关 举报
RHEL5中配置Sendmail邮件服务.docx_第1页
第1页 / 共77页
RHEL5中配置Sendmail邮件服务.docx_第2页
第2页 / 共77页
RHEL5中配置Sendmail邮件服务.docx_第3页
第3页 / 共77页
RHEL5中配置Sendmail邮件服务.docx_第4页
第4页 / 共77页
RHEL5中配置Sendmail邮件服务.docx_第5页
第5页 / 共77页
点击查看更多>>
下载资源
资源描述

RHEL5中配置Sendmail邮件服务.docx

《RHEL5中配置Sendmail邮件服务.docx》由会员分享,可在线阅读,更多相关《RHEL5中配置Sendmail邮件服务.docx(77页珍藏版)》请在冰豆网上搜索。

RHEL5中配置Sendmail邮件服务.docx

RHEL5中配置Sendmail邮件服务

RHEL5中配置Sendmail邮件服务

搭建Sendmail邮件系统

1                         ☆邮件系统

电子邮件系统的工作原理

电子邮件系统的运作方式与其它的网络应用有着根本上的不同。

在其它的绝大多数的网络应用中,网络协议直接负责将数据发送到目的

地。

而在电子邮件系统中,发送者并不等待发送工作完成,而是仅仅将要发送的内容发送出去。

电子邮件的协议标准是TCP/IP协议族的一部分。

它规定了电子邮件的格式和在邮局间交换电子邮件的协议。

每个电子邮件都分为两部分:

邮件头和邮件内容。

TCP/IP对电子邮件的邮件头的格式作了确切的规定,而将邮件内容的格式让用户自定义。

在邮件头中最重要的两个组成部分就是发送者和接收者的电子邮件地址。

电子邮件地址的格式如下:

用户名@电子邮局域名例:

abc@

电子邮件的传输协议(也就是在邮局间交换电子邮件的协议)主要有SMTP(简单邮件传输协议)、POP(电子邮局协议),以及现在新兴的IMAP(互联网邮件应用协议)。

整个电子邮件应用系统由两大部分构成:

1.电子邮局系统;

电子邮局行使着像传统邮局的功能,它在发送者和接收者之间起着一个桥梁作用。

它是运行在电子邮局服务器上的一个服务器端程序。

最常用的有Microsoft的IIS和sendmail等。

2.电子邮件发送、接收系统。

电子邮件发送、接收系统则象遍及千家万户的邮箱,发送者和接收者通过它将邮件从电脑中发送和接收邮件。

这个部分是一个运行在电

脑中的客户端程序,最常用的有Microsoft的OutlookExpress,Netscape,TheBat,Foxmail,方正飞扬等。

有3种可提供的邮件服务

MTA(MessageTransferAgent):

消息传输代理(发送邮件服务器)sendmail,postfix,qmail

MDA(MailDeliveryAgents):

邮件传递代理(邮件处理器)procmail,maildrop

MUA(MailUserAgent):

邮件用户代理(邮件客户端上运行的程序)Mozilla,elm

☆邮件服务器

邮件服务器是电子邮件系统的核心构件,它的主要功能是发送和接收邮件,同时向发件人报告邮件的传送情况。

根据用途的不同,可以将

邮件服务器分为发送邮件服务器(SMTP服务器)和接收邮件服务器(POP3服务器或IMAP4服务器)。

sendmail和postfix。

您可以选择任何一个MTA

Sendmail并不处理最终的投递,当然也不会处理如何把邮件提交给最终用户这样的任务。

一般来说,我们总是在Windows客户机器上处

理各种电子邮件,因此需要一个服务程序负责将sendmail存储的邮件转交给Windows或其他任何客户机器。

有两种基本的方法,一种是

将邮件传送到客户的本地机器上处理,这是通过所谓的邮局协议实现的;另一种是允许用户远程操作其邮箱并且实现对邮件的浏览和管理,

这是通过所谓的IMAP协议。

2                         ☆SMTP协议

SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

通过SMTP协议所指定的服务器,就可以把Email寄到收件人的服务器上了。

SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

3                         ☆POP3协议

POP3即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的协议。

它是Internet电子邮件的第一个离线协议标准,POP3允许从服务器上把邮件存储到本地主机即自己的计算机上,同时删除保存在邮件服务器上的邮件。

遵循POP3协议来接收电子邮件的服务器是POP3服务器。

4                         ☆IMAP4协议

IMAP4即Internet信息访问协议的第4个版本,是用于从本地服务器上访问电子邮件的协议,它是一个客户/服务器模型协议,用户的电子邮件由服务器负责接收保存,用户可以通过浏览信件头来决定是否要下载此信。

用户也可以在服务器上创建或更改文件夹或邮箱,删除信件或检索信件的特定部分。

5                         ☆POP和IMAP差异

虽然POP和IMAP都是处理接收邮件的,但两者在机制上却有所不同。

在用户访问电子邮件时,IMAP4需要持续访问服务器,POP3则是将信件保存在服务器上,当用户阅读信件时,所有内容都会被立即下载到用户的机器上。

因此,可以把IMAP4看成是一个远程文件服务器,而把POP看成是一个存储转发服务器。

就目前情况看,POP3的应用远比IMAP4广泛得多。

6                         ☆mail

使用权限:

所有使用者

使用方式:

mail[-iInv][-ssubject][-ccc-addr][-bbcc-addr]user1[user2...]

说明:

mail不仅只是一个指令,mail还是一个电子邮件程式,不过利用mail来读信的人应该很少吧!

对于系统管理者来说mail就很有用,因为管理者可以用mail写成script,定期寄一些备忘录提醒系统的使用者。

参数:

i忽略tty的中断讯号。

(interrupt)

I强迫设成互动模式。

(Interactive)

v列印出讯息,例如送信的地点、状态等等。

(verbose)

n不读入mail.rc设定档。

s邮件标题。

ccc邮件地址。

bbcc邮件地址。

将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。

而user2没有主机位置,就会送给邮件伺服器的user2使用者。

mailuser1@email.address

mailuser1@email.addressuser2

将mail.txt的内容寄给user2同时cc给user1。

如果将这一行指令设成crontab就可以定时将备忘录寄给系统使用者。

mail-s标题-cuser1user2

mail查看/var/spool/mail/目录下自已邮箱内容(每个用户会有一个文件保存自己所有文件)。

以q退出把看过的邮件保存在~/mbox文件中。

mailtest@直接发邮件给人。

mail-s'titletext'test@

mail-f~/mbox查看home目录下邮箱内容。

7                         ☆uuencode/uudecode

用mail发附件也是可行,要用到uuencodeanduudecode命令进行编码。

编码:

uuencode[file]name

uuencodehello>hello.uue

defaultinputisstdin;se

defaultoutputisstdout.

解码:

uudecode[-ooutfile]name

uudecodehello.uue

可以用-o选项输出另外一个文件名。

#uuencode~/.bashrc-obashrc|mail-s'testuuencode'test@

8                         ☆system-switch-mail

切换sendmail和postfix

9                         ☆sendmail

sendmail提供SMTP服务

10             ☆sendmail安装

如果你在安装RHEL5的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。

sendmail-8.13.8-2.el5.i386.rpm(第一张光盘,默认已装)sendmail软件包是sendmail服务器程序的安装包,是最重要的软件包.

m4-1.4.5-3.el5.1.i386.rpm(第一张光盘,默认已装)m4软件包中包括了配置sendmail服务器的必要工具.

procmail-3.22-17.1.i386.rpm(第一张光盘,默认已装)

sendmail-cf-8.13.8-2.el5.i386.rpm(第二张光盘,默认未装)sendmail-cf软件包中包括了重新配置sendmail服务器的必要配置文件.

sendmail-doc-8.13.8-2.el5.i386.rpm(第三张光盘,默认未装)sendmail-doc软件包中包括了sendmail服务器的说明文档.

sendmail-devel-8.13.8-2.el5.i386.rpm(第三张光盘,默认未装)

管理员需要手动安装以下两个包,才能配置sendmail服务器:

#rpm-ivhsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpm

设置运行级别:

#chkconfig--level35sendmailon

11             ☆sendmail使用前配置

sendmail的DNS设置

当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给那一个服务器,这是通过DNS服务实现的。

例如,有一封邮件的目标地址是panda@,那么,sendmail首先确定这个地址是用户名(panda)+机器名()的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。

先用ifconfig查看服务器的ip,再把ip写入:

#vi/etc/resolv.conf

;generatedby/sbin/dhclient-script

search

nameserver192.168.152.128

确认/etc/hosts,

#vi/etc/hosts

#Donotremovethefollowingline,orvariousprograms

#thatrequirenetworkfunctionalitywillfail.

127.0.0.1pandapanda

然后在/etc/named.conf中加入

zone""IN{

typemaster;

file".zone";

};

最后生成/var/named/chroot/var/named/.zone

$TTL86400

@INSOA..(

2006062700;Serial

28800;Refresh

14400;Retry

3600000;Expire

86400);Minimum

INNSpanda

INMX10panda

pandaINA192.168.152.128

重启DNS.#servicenamedrestart

DNS数据中,与电子邮件相关的是MX记录,这可以在查询DNS时设置查询类型为mx来得到:

[root@panda~]#nslookup

>

Server:

192.168.152.128

Address:

192.168.152.128#53

Name:

Address:

192.168.152.128

>setq=mx

>

Server:

192.168.152.128

Address:

192.168.152.128#53

mailexchanger=10.

在一般的情况下,mx交换器会自动把信件内容转交给目标主机,不过,也存在这样的情况,目标主机(比如)可能并不存在,或者不执行smtp服务,而是由其mx交换器来执行信件的管理,这时候,最终的信件将保存在mx机器上,直到用户来察看它。

如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么sendmail将是试图直接与对方的主机(来自邮件地址)对话并且发送邮件。

例如,test@在DNS中没有对应的MX记录,因此sendmail在确定MX交换器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。

sendmail发送邮件时,如果经过设定的时间后仍然未能将信件投递到目的主机,它将返回一个错误信息并且休息一段时间,然后重新试图投递,如果连续多次失败,sendmail最终将放弃投递并将错误信息投递给postmaster用户。

在许多机器上,postmaster用户是root用户的一个别名(参考下面关于别名的内容),你应该将它设置为邮件的实际管理员的用户名。

例如,你可能会用mail程序向某个地址这样发信:

$mailsomeone@

To:

other@

Subject:

testmail

test

someone@必须准确到某台主机上

那么,当sendmail发信的时候,它是向someone@发信而不是other@。

相应地,如果你想向两个人发信,例如你在outlook里面写上:

"投递给user1@,抄送user2@",那么sendmail应该怎么做?

直接同时向两个地址发信吗?

否,它试图构造两个包装(称为信封),每个包装上只列出一个投递地址,各投递一次。

虽然邮件正文的头部仍然包含两个地址,但是sendmail不会看它。

配置文件

/etc/sysconfig/sendmail

DAEMON=yes

QUEUE=1h

每一个小时传递队列中的文件

12             ☆sendmail防火墙

iptables-IINPUT-ptcp--dport25-jACCEPT

13             ☆sendmail启动

启动用:

#servicesendmailstart;#/etc/init.d/sendmailstart;

或#sendmail-bd-q30m该命令以后台进程方式(-bd)运行,并使其每隔30分钟(-q30m)轮询一次未发送邮件队列,检查是否有新邮件。

-q1h表示每隔一个小时发送一次邮件

停止用:

#servicesendmailstop;#/etc/init.d/sendmailstop;#servicesendmailrestart;

14             ☆sendmail主要配置文件

#ls/etc/mail/

accesshelpfileMakefilesubmit.mc

access.dblocal-host-namessendmail.cftrusted-users

domaintablemailertablesendmail.mcvirtusertable

domaintable.dbmailertable.dbsubmit.cfvirtusertable.db

#ls/etc/aliases*

/etc/aliases/etc/aliases.db

在/etc/mail目录中保存了sendmail服务器使用的所有配置文件,文件后缀是".cf"的是服务器配置文件,文件后缀是".db"的是服务器使用的数据库文件,下面是常用的文件说明:

配置文件sendmail.cf和sendmail.mc

sendmail服务器的主配置文件是sendmail.cf,该文件的格式是公认的难于理解,因此即使是有经验的管理员也会避免直接编辑此文件,sendmail开发人员为

sendmail管理者提供了更加容易理解和配置的sendmail.mc文件。

一般情况下,系统管理员对sendmail.mc文件的内容进行设置后,再使用m4命令由

sendmail.mc文件的内容生成sendmail.cf文件。

但由于sendmail.mc文件的配置依然有一定的难度,因此在第一次对sendmail.mc文件进行修改前,最好先将

该文件进行备份,以便配置错误时能够恢复默认配置,操作流程如下:

#cd/etc/mail(进入主配置文件目录)

#cpsendmail.mcsendmail.mc-(备份配置文件sendmail.mc)

#visendmail.mc(编缉配置文件sendmail.mc)

#m4sendmail.mc>sendmail.cf(利用m4命令重新生成主配置文件sendmail.cf)

#servicesendmailrestart(重启sendmail服务使配置生效)

注意:

sendmail服务器在运行时只读取sendmail.cf文件中的设置,因此每次对sendmail.mc文件进行修改后都需要使用m4命令生成新的sendmail.cf文件,

而且m4命令必须在/etc/mail/目录中执行。

数据库配置文件和数据库文件

在sendmail服务器中除了sendmail.cf主配置文件以外,还使用了许多数据库文件辅助进行sendmail服务器的配置。

在/etc/mail目录中所有扩展名为".db"的

文件都是数据库文件,这些数据库文件的格式对于用户是不可读的。

每个".db"数据库文件在同一目录下都对应有同名的无扩展名文件,例如对于access.db

文件,对应有名为access的文本文件,access文件是用于系统管理员进行管理的,称为数据库配置文件。

当管理员在数据库配置文件(文本文件)中进行了相

应的设置后,需要使用makemap命令将数据库配置文件生成".db"的数据库文件,因为sendmail服务器只能够识别".db"的数据库文件中的配置内容。

作流程如下:

#cd/etc/mail(进入数据库文件目录)

#viaccess(编辑数据库配置文件)

#makemaphashaccess.db

#servicesendmailrestart(重启sendmail服务让配置生效)

☆sendmail.mc

sendmail.mc文件中指令的意义:

指令

意义

divert(-1)

删除结果文件中的垃圾

divert(0)

保存通常的配置文件

Dnl

注解

Include

包含一个文件

definearg1arg2

定义宏arg1设置为arg2

undefinearg1

取消arg1的定义

OSTYPE('Linux')

定义操作系统类型

FEATURE

功能选项,对应/usr/lib/sendmail-cf/feature里定义的文件名称

MAILER

定义所有必要的邮件投递代理程序

ASQUERADE_AS

用来处理多主机名称问题

divert(-1)dnl

dnl#

dnl#Thisisthesendmailmacroconfigfileform4.Ifyoumakechangesto

dnl#/etc/mail/sendmail.mc,youwillneedtoregeneratethe

dnl#/etc/mail/sendmail.cffilebyconfirmingthatthesendmail-cfpackageis

dnl#installedandthenperforminga

dnl#make-C/etc/mail

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl

VERSIONID(`setupforlinux')dnl

OSTYPE(`linux')dnl//设定使用的操作系统类别

dnl#Donotadvertizesendmailversion.

dnldefine(`confSMTP_LOGIN_MSG',`$jSendmail;$b')dnl

dnl#defaultlogginglevelis9,youmightwanttosetithigherto

dnl#debugtheconfiguration

dnldefine(`confLOG_LEVEL',`9')dnl

dnl#Uncommentandeditthefollowinglineifyouroutgoingmailneedsto

dnl#besentoutthroughanexternalmailserver:

dnldefine(`SMART_HOST',`smtp.your.provider')dnl

define(`confDEF_USER_ID',``8:

12'')dnl

dnldefine(`confAUTO_REBUILD')dnl

define(`confTO_CONNECT',`1m')dnl

define(`confTRY_NULL_MX_LIST',`True')dnl

define(`confDONT_PROBE_INTERFACES',`True')dnl

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl

define(`ALIAS_FILE',`/etc/aliases')dnl

define(`STATUS_FILE',`/var/log/mail/statistics')dnl

define(`UUCP_MAILER_MAX',`2000000')dnl

define(`confUSERDB_SPEC',`/etc/mail/userdb.db')dnl

define(`confPRIVACY_FLAGS',`authwarnings,novrfy,noexpn,restrictqrun')dnl

define(`confAUTH_OPTIONS',

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1