一.安装sendmail
如果你在安装LINUX的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。假如你在安装时没有选择,或者你需要升级sendmail就可以使用以下方法进行。
1.RPM包安装方式
1) 首先在光盘上或Internet上找到下面几个RPM包(Redhat Linux安装光盘都有):
sendmail-8.9.3-10.i386.rpm sendmail可执行文件
sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器
sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文档
2) 然后使用以下命令安装或升级:
安装: rpm –ivh sendmail-8.9.3-10.i386.rpm
升级: rpm –Uvh sendmail-8.9.3-10.i386.rpm
2.重新编译源码方式
1) 首先取得最新版本的源代码:http://www.sendmail.org/或ftp://ftp.dlut.edu.cn/pub/unix/mail/sendmail/,将它存放在/usr/local目录下。
2) 执行以下命令,解压缩:
cd /usr/local
tar –zxvf sendmail-8.9.3.tar.gz
这样就会在/home目录下建立一个sendmail-8.9.3目录:
/usr/local/sendmail-8.9.3/README
/usr/local/sendmail-8.9.3/src
/usr/local/sendmail-8.9.3/cf
/usr/local/sendmail-8.9.3/doc
3) 编译:由于sendmail自己带了一个编译程序Build,所以不用make命令:
cd /usr/local/sendmail-8.9.3/src
./Build install
二. 用sendmail构建一个E-Mail服务器
因为sendmail的功能强大,配置相当繁琐,无法在一篇文章说完这个内容。我们在纛举一个架设供一个公司使用的Internet E-Mail服务器为例进行讲述。以下的设置也能运用在较大的电子邮局应用中,但是随着的用户数的增多,将会使得整个邮局的性能有所下降,这时也就相应地要进行更加深入的配置工作。有兴趣的读者可以到本网站《在线培训》栏目中的翻译作品子栏目中,阅读笔者翻译的《Sendmail》一书。
下面我们就开始吧!
1.将sendmail配置为守候进程(daemon)启动
如果你在安装LINUX的时候,选择了E-Mail服务。那么,sendmail就已经成为一个守候进程启动了。所谓的守候进程,指的是它就象DOS操作系统中的常驻内存程序一样,运行后,它们在后台侦听,当需要它进行服务的时候,它就完成特定的功能和服务。在LINUX系统中有许许多多的服务就是以守卫进程的方式启动着的。
你可以使用以下命令来确认sendmail是否已经启动。
ps –axuw|grep sendmail
如果启动了sendmail,那么这个命令将显示出它的相关信息。否则将没有任何提示地回到命令行。如果没有启动,你可以手动启动。
如果你想让sendmail自动在系统启动时启动,那么就在/etc/rc.d/rc.net文件中加上以下几行代码。
if [-f /usr/lib/sendmail ]; then
(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n ‘sendmail’>/dev/console
fi
2.设置sendmail.cf
sendmail.cf是sendmail的配置文件。一般说来在安装了LINUX系统之后,它将自动生成一个适合本系统使用的sendmail.cf文件,而且在sendmail.8.9.3/cf目录下还有许多适应各种系统的sendmail.cf的文件样本,根据文件名也可以判断出它们所适用的场合。可以选择它们替换原有的sendmail.cf文件。也就是将它们复制到/etc目录中去,覆盖掉原来的sendmail.cf文件。
而且sendmail还提供了一个sendmail.cf的生成器m4,它通过一系列的人机对话来生成一个用户定制的sendmail.cf文件。具体的用法可以阅读m4的帮助文档。在此就不再详述。
3.开启SMTP、POP端口
在Internet中,我们采用POP端口提供接收邮件服务,采用SMTP端口提供发送邮件服务。也就是说,客户端的邮件发送、接收系统在要发送邮件的时候,就与电子邮局的SMTP端口连接;当要接收邮件的时候,就与电子邮局的POP端口连接。
而一般在所有的类UNIX系统中,SMTP端口默认是打开的,而POP端口在默认状态下是关闭的,我们必须将它打开。
1) 用root(超级权限)登录到服务器上;
2) 编辑文件/etc/inetd.conf;
3) 找到描述POP端口的语句;
#pop2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d
#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
前面的#号代表这一行是注释语句,不生效。
POP2是早期的端口协议版本,我们现在一般使用的是POP3.
4) 将POP3的描述语句那一行的注释号“#”去掉。确保POP2的那一行是注释语句。
5) 如果没有找到,就手工补上这一行;(另外,我们还可以验证一下是否存在SMTP端口的描述语句);
6) 存盘后退出。
7) 运行inetd命令,使得设置生效。
8) 用以下命令验证,看POP3端口是否打开(生效)。
netstat –a |grep pop
如果打开的话,可以看到以下信息:
tcp 0 0 *:pop3 *:* LISTEN
4.为新用户开E-Mail帐号
其实,在LINUX中,要为一个新的用户开E-Mail帐号是十分简单的。只要在LINUX系统中新增一个用户就可以了。那么这个用户帐号和密码就是E-Mail的帐号和密码。例如,我为一个新用户test开一个E-Mail帐号。就用以下命令:
adduser test
passwd test
这样,这个新用户的E-Mail地址就是:
[email protected]
密码当然就是帐号的密码了。
5.为E-Mail帐号设置别名
如果,有一些用户想使用多个E-Mail地址,是不是就要为他开多个帐号呢?如果是这样就会增加对帐号管理的难度。所以LINUX给我们提供了一种方法:设置别名。
比如说,一个用户叫“李小东”,它想拥有以下的几个E-Mail地址:
[email protected]
[email protected]
[email protected]
我们就通过以下步骤来实现这样的别名设置。
1) 以root登录服务器;
2) 新增一个账号lxd;
3) 编辑文件/etc/aliases;
4) 加上两行:
xiaodong:lxd
tigger:lxd
5) 存盘退出;
6) 执行命令:
Newaliases
这样,发给李小东的邮件可以使用三个邮件地址,而李小东只需要使用一个E-Mail帐号:
[email protected]就可以接收所有寄给以上三个E-Mail邮件地址的电子邮件。