分享
 
 
 

SendMail上手指南

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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

# /etc/rc.d/init.d/sendmail start

为了方便起见,我们应该使用ntsysv命令把Sendmail守护进程加到引导程序中,在多数情况下,安装时Linux就已经自动将Sendmail包含在引导程序中了。这样每次开机时,Linux都会启动Sendmail守护进程并侦听端口25,处理进入的邮件。

Sendmail的配置文件是/etc/sendmail.cf文件,它包含大部分的Sendmail配置的信息,包括在用户邮件程序和邮件传输程序之间为邮件选择路由所需的信息。Sendmail.cf文件有三个主要功能:

·定义Sendmail环境。

·按照接收邮件程序的语法重写地址。

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

执行所有这些功能需要若干命令。一些宏定义和可选用的命令可定义其环境,一些重写规则可以重写电子邮件的地址,一些邮件程序定义可定义传送邮件所必需的指令。

sendmail.cf文件很大,看上去可复杂,但我们需要改动的地方很少。主要在local info中做文章。请在文件中寻找“Cw”,原来产生的cf 文件,Cw应是:

Cwlocalhost

# file containing names of hosts for which we receive email

# Fw/etc/sendmail.cw

请在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查找或检查是否安装正常):

# Check the /usr/doc/sendmail-8.9.3/README.cf file for a description

# of the format of this file. (search for access_db in that file)

# The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc

# package.

#

# by default we allow relaying from localhost...

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能正常工作即可:

# vi /etc/inetd.conf

查找到:

# pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

把这一行前面的“#”号删掉。然后修改/etc/services文件:

# vi /etc/services

在该文件中查找到

#pop-3 110/tcp # POP version 3

同样,将这一行前面的注释符“#”号删掉。之后使用下面的命令重新启动inetd和sendmail守护进程:

# /etc/rc.d/init.d/sendmail restart

# /etc/rc.d/init.d/inetd restart

在我们配置完sendmail后,可以运行以下的命令来检查目录的读写权限以检查潜在的安全漏洞。

# sendmail –b –vi

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

WARNING: writable directory /etc

WARNING: writable directory /usr/spool/mqueue

那么这个目录列出了不适当的写特权,应该使用chmod和 chown命令以避免多方面的的安全攻击。一般我们需要对如下目录运行chmod和chown命令:

# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

# chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

sendmail 的有一些参数可以用于验证地址处理的结果,以确保其新配置的合理性。一旦认为配置可以正常工作了,我们就可以选择各个站点上的朋友,并将邮件发送给他们。发送时使用-v参数就可以显示邮件传输的各个细节和两个站点之间进行SMTP交换的全过程。下面是一个测试的例子,使用的文件是test.cf,一旦测试成功,我们就可以将这个文件拷贝到/etc下并可以改名为sendmail.cf。

# sendmail –Ctest.cf –t –v

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 tcp…

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提供的一些附加查错工具解决这些问题。

,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有