sendmail配置入门
点击次数:24 次 发布日期:2008-11-29 17:07:13 作者:源代码网
|
源代码网推荐 源代码网推荐 学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:< gauss.maths.groucho.edu.> 源代码网推荐 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提供的一些附加查错工具解决这些问题。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网供稿. |
