快捷搜索:

sendmail配置入门

学linux久了,也写点器械让大年夜家共享

为了能从收集上接管SMTP电子邮件,我们必须在Linux系统上运行Sendmail守护进程。敕令是;

为了方便起见,我们应该应用ntsysv敕令把Sendmail守护进程加到向导法度榜样中,在多半环境下,安装时Linux就已经自动将Sendmail包孕在向导法度榜样中了。这样每次开机时,Linux都邑启动Sendmail守护进程并侦听端口25,处置惩罚进入的邮件。

Sendmail的设置设置设备摆设摆设文件是/etc/sendmail.cf文件,它包孕大年夜部分的Sendmail设置设置设备摆设摆设的信息,包括在用户邮件法度榜样和邮件传输法度榜样之间为邮件选择路由所需的信息。Sendmail.cf文件有三个主要功能:

·定义Sendmail情况。

·按照接管邮件法度榜样的语法重写地址。

·将地址映射成传送邮件所需的指令。

履行所有这些功能必要多少敕令。一些宏定义和可选用的敕令可定义其情况,一些重写规则可以重写电子邮件的地址,一些邮件法度榜样定义可定义传送邮件所必需的指令。

sendmail.cf文件很大年夜,看上去可繁杂,但我们必要篡改的地方很少。主要在local info中做文章。请在文件中探求“Cw”,原本孕育发生的cf 文件,Cw应是:

Cwlocalhost

请在localhost之后加上我们那一台机械所有可能用来当收信地址的主机的名字。例如,在局域收集Virtual Brewery中的一台机械叫:vlager.vbrew.com,而且也叫gopher.vbrew.com,而该收集的治理员盼望这一台机械的这两个名字都能收信,那么他必要这样改动sendmail.cf文件:

Cwlocalhost vlager.vbrew.com gopher.vbrew.com

上面只是一种简便的措施,假如系统中运行着DNS,我们可以经由过程DNS来解析主机又名(如下所示),而不用加上主机又名gopher.vbrew.com。假如没有运行DNS,那么必须将本机械的所着名字都写上。

假如用作邮件办事器的主机有多个名字(hostname),例如:

vlager IN A 191.72.1.1

gopher IN CNAME vlager

那么我们可以不必在Cw上标明,系统会透过DNS 找到它的又名

假如一台机械有多个名字,然则每一个又名是用A record 建立的,例如:

vlager IN A 191.72.1.1

gopher IN A 191.72.1.1

在这种环境下必然要记得在Cw后写上所要收信主机的名字。假如忘

记了,那么从外貌寄来的以又名为地址的信件将无法正常接管,机械会诉苦:

“Local configuration error”

例如,假如在sendmail.cf中的Cw这行是Cw vlager.vbrew.com,那么局域网Virtual Brewery中的用户将无法应用邮件地址 username@gopher.vbrew.com 而只能用username@vlager.vbrew.com,否则将呈现上述差错。

假如一台机械有多interface,各interface有其本身的名字,而且要收信。

这种环境也要在Cw之後写明所有要收信的hostname。

在我们的例子中F敕令是作为注释处置惩罚的,假如去掉落它前面的“

sendmail将从/etc/sendmail.cw中读取主机的又名,并将又名储存在类w中。将F敕令做注释处置惩罚,并让sendmail在内部定义又名这是一种最常用的措施。

打开/etc/mail/access文件时,会看到(留意一些系统的access文件不再/etc/mail下,如找不到请用whereis查找或反省是否安装正常):

iption

le)

l-doc

localhost.localdomain RELAY

localhost RELAY

假如我们主机的IP地址是191.72.1.1的话,就应该在着末一行加上它的记录项,这样,我们改动后的文件的着末三行应是:

localhost.localdomain RELAY

localhost RELAY

191.72.1.1 RELAY

加上这句话我们就可以用sendmail发送接管mail了。然则假如我们想让别人也可以应用sendmail的话,而他的IP是202.168.25.22,这样就在在着末一行加入他的主机的记录项,这时文件的着末四行应是:

localhost.localdomain RELAY

localhost RELAY

191.72.1.1 RELAY

202.168.25.22 RELAY

当我们斟酌到多用户的时刻,sendmail容许我们添入全部B类或C类地址,其款式如下:

localhost.localdomain RELAY

localhost RELAY

191.72 RELAY

202.168.25 RELAY

这样,我们便是把全部收集都加入的sendmail中,这个地址中的用户,假如在我们的系统里有账号的话,可以应用sendmail收发信件了。

Linux还容许我们设置邮局协议(POP)邮件办事器,POP协议分两个版本POP2和POP3,很显然POP3是新版本的邮局协议,现在Internet网上主如果POP3协议。

POP3并不必要我们来设置设置设备摆设摆设,RedHat已经为我们做好了这一事情。我们只必要改动一下 /etc/inetd.conf文件,确保POP3能正常事情即可:

查找到:

把这一行前面的“

在该文件中查找到

同样,将这一行前面的注释符“

netd和sendmail守护进程:

在我们设置设置设备摆设摆设完sendmail后,可以运行以下的敕令来反省目录的读写权限以反省潜在的安然破绽。

这时,sendmail将开始初始化alias数据,假如在屏幕上回显:

WARNING: writable directory /etc

WARNING: writable directory /usr/spool/mqueue

那么这个目录列出了不适当的写特权,应该应用chmod和 chown敕令以避免多方面的的安然进击。一样平常我们必要对如下目录运行chmod和chown敕令:

mqueue

mqueue

sendmail 的有一些参数可以用于验证地址处置惩罚的结果,以确保其新设置设置设备摆设摆设的合理性。一旦觉得设置设置设备摆设摆设可以正常事情了,我们就可以选择各个站点上的同伙,并将邮件发送给他们。发送时应用-v参数就可以显示邮件传输的各个细节和两个站点之间进行SMTP互换的全历程。下面是一个测试的例子,应用的文件是test.cf,一旦测试成功,我们就可以将这个文件拷贝到/etc下并可以改名为sendmail.cf。

To: lack@vlager.vbrew.com

From:janet

Subject:Test for sendmail

Lack,please reply if you see this,Thanks.

^D

lark@ vlager.vbrew.com…..Connecting to vlager.vbrew.com via t

cp…

Trying 191.72.1.1 ….connected.

220 VLAGER.VBREW.COM on Web, 30 Sep 99 16:23:23 CST

>>> HELLO maths.groucho.edu

250 VLAGER.VBREW.COM is my domain name

>>> MAIL From:

250 OK

>>> DATE

354 Enter mail body, End by new line with just a ‘.’

>>>.

250 Mail Delivered

>>> QUIT

221 VLAGER.VBREW.COM closing connection

lack@vlager.vbrew.com …sent

我们在CTRL-D之前输入所有的内容,而sendmail则显示^D之后的内容。经由过程对sendmail的测试,我们就可以发明潜在的设置设置设备摆设摆设问题,并应用sendmail供给的一些附加查错对象办理这些问题。

您可能还会对下面的文章感兴趣: