分享
 
 
 

Debian服务器设置入门教程之三

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

0.声明

本文是在《通过exim建立家庭网络的邮件系统》一文的基础上修改的,作者:Jan W.Stumpel,Oegstgeest, The Netherlands。

这篇章的地址是:http://211.167.66.225/~yzhao/lg-zh/lg-zh-issue8/stumpel.html

1.简介

我想现在一个再普通的单位,也会需要用到电子邮件。我所在的企业,已经到了无法离开email的地步——每当邮件服务器出现问题,我的电话都会被打爆。在M$平台上,邮件服务器市场基本上被两个软件占领:M$的Exchange和Lotus的Domino/Notes。这些软件所花费的费用,实在不小。而Unix平台上,我们有很多选择,而且都是免费的。

在Debian里面,我们不用Sendmail,也不用Qmail和Postfix,而是用Exim,这是Debian的缺省邮件服务器,连基本系统都附带了这个软件。理由我就不说了,反正,Debian推荐的,不会错。

1.1 我们将实现的功能

◆ 局域网中的用户可以实现本地邮件的发送和转发。

◆ 发往局域网以外的邮件有正确From:<邮件地址>,以使外部的邮件能够正确的回复。

◆ 电子邮件账号是所有本地子网用户所共享,但是要实现每个用户仅仅能够收到自己的邮件。

◆ exim作为邮件的收发代理(它比sendmail好配置的多)。

◆ mail作为Linux端的邮件客户程序。

◆ Microsoft Outlook Express

作为Windows2000端的邮件客户程序(同样你也可以使用其它的类似工具,比如Foxmail)。

◆ qpopper 作为POP3服务器, 用来把邮件从Linux系统中转移到Windows2000机器上。

◆ fetchmail 用来从互联网上收取邮件。

我在两台机器上(分别安装Linux和Win2000系统)做的测试,当然,win9x/NT/XP都可以,而且两台机器都是Linux的话也当然可以。这个方案,应付一个中小型的办公室应该绰绰有余。

1.2 网络和命名

在这篇文章中我假定以下的名字(您实际应用时应该做写修改,以适应您的实际情况):

◆ 拥有者和系统管理员的名称 kanaka Leng。

◆ Linux机器名为 Debian。

◆ Win2000 机器名为 Notepad。 通常使用者为 ganghua Leng。

◆ kanaka 在 Debian 机器上的注册用户名为 kanaka。

◆ ganghua 在 Debian 机器上的注册用户名为 ganghua。

◆ganghua在Notepad机器上的注册用户名也为ganghua。她的在Linux下的Debian机器和Windows2000上的口令也相同。

◆ 我们公司的局域网通过宽带连接互联网,当然你通过普通拨号也可以。

◆ kanaka 和 ganghua 都使用电子邮件地址:kanaka@yeah.net。

◆ kanaka到POP3收信的口令为kanakapswd。

◆ ISP的发送邮件的邮件服务器为smtp.yeah.net。

◆ ISP的接受邮件的邮件服务器为pop3.yeah.net。

机器Debian和Notepad都属于一个域,域名为test.com。

这个域名是我们内部搞测试用的,我们并没有注册这个域名,因而对于外部网络来说,并不能直接识别这个域名。

此外,我还假设内部网络已经正常工作,

并且已经拥有使用daild实现的非永久拨号连接,或者宽带网连接。在Debian机器上也没有安装DNS服务。/etc/resolv.conf中只是加入了ISP提供的两个DNS服务器的地址。同样的设置也要加在Notepad机器上的TCP/IP设置中。

1.3 邮件地址

在"To:"和"From:"中指定邮件地址是一封邮件的基本组成部分, 此外还有更多的内容。 举例来说: To: ganghua Leng

'ganghua Leng'是一个"real-name part"(真实姓名部分)。 这是通过撰写电子邮件的程序加上的。 这个部分就是将邮件发送给ganghua本人的依据。 注意:如果在real-name part中有句点存在, 邮件地址必须用"符号包围起来(例如:"kanaka C.Leng")。 您可以用man mailaddr参考一下相关的帮助页。

2.安装

由于我们已经安装了Debian基本系统,而Debian基本系统里面含有exim和mail这两个软件,所以我们只需要安装这两个:fetchmail、fetchmailconf和qpopper。

# apt-get install fetchmail fetchmailconf qpopper

其中,fetchmailconf是用来配置fetchmail的工具。

系统会有一些问题提问你。当问你是否以root身份运行system-wide fetchmail时,答Yes。其他的都选默认值。

3.配置

3.1 配置Debian的hosts

Debian机器上的/etc/hosts文件内容如下:

127.0.0.1 localhost192.168.1.1 Debian.test.com Debian192.168.1.2 Notepad.test.com Notepad

3.2 配置exim

在Debian下,这一切都是由eximconfig程序来完成的。

# eximconfig

程序将问到一些问题,你可以参考下面的回答:

◆ 你的系统是一个Internet主机(选择1,虽然你在局域网。这样你可以发邮件到互联网)。

◆ “显示的邮件域名”为test.com。

◆ 系统有其他的名称吗?你可以回答 Debian:localhost。

◆ 你不想转发任何非本地域的邮件。保持none,按回车。

◆ 你想转发的本地域地址为192.168.1.0/16。

◆ 处理向外转发的邮件的smarthost 地址为 smtp.yeah.net。

◆ 系统管理员的邮件为kanaka(非root)。

3.3 配置Windows2000

3.3.1 hosts

在Notepad机器上的c:winntsystem32driversetchosts文件中的内容跟Debian机器中的/etc/hosts文件的内容一样。

127.0.0.1 localhost

192.168.1.1 Debian.test.com Debian

192.168.1.2 Notepad.test.com Notepad

3.3.2 邮件客户端

在Microsoft Outlook Express(或者你在Win2000使用的其他此类的邮件客户程序)。 必须都将Debian输入作为SMTP 邮件服务器和POP3服务器。 在“POP3账号名”和“POP3口令”输入框, 输入用户名ganghua和她在linux下的口令。 输入姓名为ganghua Leng; 电子邮件地址为 ganghua@test.com。 注意电子邮件地址必须以本地域做后面的地址。

4.小测试

通过上述的设置,本地的用户之间应该已经可以实现相互的发送和回复信件了。在Outlook Express里面的测试我就不说了,我来说一下在Debian上面用mail来做测试。

# mail kanaka

Subject: This is my First test-mail!

Hi,kanaka,

This is the first time that I send a mail by exim.

.

Cc: kanaka@yeah.net

#

上面我们给本地的kanaka发了一封邮件,并抄送给了互联网上的kanaka@yeah.net。注意,要结束一封信的内容,在新的一行输入“.”就可以了。我在Windows 2000上用Outlook Express就可以收到发给kanaka的信;而发给kanaka@yeah.net的信,我到freemail.yeah.net站点上去,也收到了。

现在test.com已经真正成为了一个具有邮件转发功能的本地域,而且可以发送邮件到互联网上的kanaka@yeah.net。但是,一个格式为From:kanaka@test.com的地址显然是无法被外部用户回复的,因为对于外部网络来说,test.com是一个不存在的(因而不合法)的域名。因此,我们还需要修改From:的地址。

5.修改 From: 的地址

在往互联网上发送邮件的时候,为了他们可以正确的回复,我们必须把本地的From:地址格式改变成为一个合法的电子邮件地址。 借助于exim的"传送过滤器", 我们可以实现这一功能。 往外部转发的邮件经过这个传送过滤器以后, From: 中的地址就会被改变, 而对于本地邮件则没有什么影响。

下面的过滤器将实现这个恶作剧式的技巧, 首先我们确定我们要改变的地址永远包含在"<>"符号之内。 虽然不能完全保证, 但是通常的邮件程序:mail甚至Microsoft Outlook Express都是生成这种格式的电子邮件地址。

5.1 创建outfit文件

我们来创建一个文件,/usr/bin/outfit,内容如下:

#!/usr/bin/perl

while () {

if (/^From: /) {

s/<.*>/<'kanaka@yeah.net'>/;

print "$_"; last;

}

print "$_";

}

while () { print "$_"; }

把这个文件放到/usr/bin目录中,命名为outfit,不要忘记把上面的电子邮件地址换成你自己的电子邮件地址! 然后,通过下面的命令chmod +x /usr/bin/outfit加上可执行的权限。

# chmod +x /usr/bin/outfit

5.2 修改exim.conf

打开/etc/exim/exim.conf,找到下面一行:

driver = smtp

在它的下面加上两行,就成了:

driver = smtp

headers_remove = "sender"

transport_filter = "/usr/bin/outfilt"

通过上述对/etc/exim.conf文件的修改,无论何时发送一封电子邮件到本地域以外时,都可以被exim正确的投递了。如果你使用的是拨号网络,那么Exim(通过daild)每发送一次邮件,就会向外拨一次号。而我们公司的宽带24小时在线,所以邮件每次都是直接就发出去了。

6.配置Fetchmail

我们需要运行fetchmailconfig,来在你的主目录里产生一个叫.fetchmailrc的文件,否则你就不能使用fetchmail。 fetchmial将从互联网的邮件服务器上取回邮件(并转交给exim再做本地投递)。

# fetchmailconfig

fetchmialconf must be run under X

你看到了吧,它说fetchmialconf这个程序比如在X下面运行。唉!我们要把debian做服务器用,而服务器根本不需要安装X的,我们不会为了配置fetchmail再去安装一个X系统和一个窗口管理器吧!好吧,那么我们就手工写这个文件吧,其实也很简单。

由于我们是要把邮件接收到kanaka在本地的信箱里面,所以应该在kanaka的主目录里面产生这个.fetchmailrc,所以我们切换到kanaka用户,再进行操作:

# su kanaka

$ cd

$ nano .fetchmailrc

然后,输入以下内容,存盘退出即可:

set postmaster "postmaster"

poll pop3.yeah.net with proto POP3

user "kanaka@yeah.net" password "kanakapswd"

.fetchmailrc文件可以在不同用户之间相互拷贝,只要把文件的属主设置成相关的用户即可。不过把用户的邮件密码用明码写在这个文件中显然是一种不明智的方式。或许应该有更好的方法,请大家告诉我啊,呵呵。

然后,使用fetchmail命令来把邮件从互联网上拖到本地来:

$ fetchmail1 message for kanaka@yeah.net at pop3.yeah.net (1648 octets).reading message kanaka@yeah.net@pop3.yeah.net:1 of 1 (1648 octets) . flushed

然后,你可以在Windows 2000的Outlook Express里面,从本地接收这些邮件。

7.修改exim的投递限制

Exim 缺省的一次投递邮件的最大数量为100封。

你可以根据你们单位的实际情况,修改这个值。如果需要取消这个限制,就把它改为0,不过小心受到攻击:

smtp_accept_queue_per_connection = 0

8.综合测试

你可以在Debian上和Windows 2000上多发几封邮件,做一下测试。

9.TODO

在下一个版本中,我们将描述如何使用.forward文件,实现转发,把信件正确的投递邮件给某个用户,而不是一下子都发给kanaka。

我们还将描述,如何建立一个webmail系统。

10.结束语

本文是《Debian服务器设置入门》系列教程之第三章,建议您按照顺序阅读,有问题可以和作者kanaka联系。

11.参考文献

本文在开头就声明,本文是在《通过exim建立家庭网络的邮件系统》一文的基础上修改的,作者:Jan W. Stumpel, Oegstgeest, The Netherlands。

这篇章的地址是:http://211.167.66.225/~yzhao/lg-zh/lg-zh-issue8/stumpel.html

之所以这样,是因为,这篇文章对我们来说太珍贵了,除了她,我没有找到其他关于exim的资料。

非常感谢原文作者,以及翻译者

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有