Sendmail邮件服务器快速指南 2
程序员文章站
2023-08-18 17:53:57
postmaster: root
bin: root
daemon: root
nobody: root
然后生成aliases库:
[root@email mail]# newaliases
然后,就可以启动Sendmail了:
[root@email mail]#... 09-03-10...
postmaster: root
bin: root
daemon: root
nobody: root
然后生成aliases库:
[root@email mail]# newaliases
然后,就可以启动sendmail了:
[root@email mail]# /usr/sbin/sendmail -bd -q20m
在第一次启动时可能出现如下的错误信息:
554 5.0.0 /etc/mail/sendmail.cf: line 41: unknown configuration line ""
554 5.0.0 /etc/mail/sendmail.cf: line 60: unknown configuration line ""
不要紧张,只需要使用vi编辑器将这些行删除即可,其实41、60等行都是空白行而已。删除以后再重新启动就应该没有问题了。
qpopper的安装配置
qpopper是unix/linux环境下的pop3服务器,该软件配合sendmail使用。其主要是实现支持用户通过pop3接收信件。
创建从/usr/mail指向/var/spool/mail/的链接:
[root@email src]# ln -s /var/spool/mail/ /usr/mail
解压qpopper软件包:
[root@email src]# tar xvfz qpopper4.0.3.tar.gz
[root@email src]# cd qpopper4.0.3
编译安装qpopper:
[root@email qpopper4.0.3]# ./configure
[root@email qpopper4.0.3]# make
[root@email qpopper4.0.3]# make install
安装成功以后,qpopper将会被安装在目录/usr/local/sbin/目录下。设置inetd启动qpopper。编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加入下内容:
pop-3 stream tcp nowait root /usr/local/sbin/popper qpopper -s
然后查找inetd进程id号:
[root@email qpopper4.0.3]# ps ax|grep inetd
336 ? s 0:00 inetd
16872 pts/0 s 0:00 grep inetd
找到inetd进程号为226。然后重新启动inetd进程,重新读取配置文件:
[root@www qpopper4.0.3]# kill -hup 336
这时候查看系统服务端口号:
[root@email qpopper4.0.3]# netstat -ln|grep 110
tcp 0 0 0.0.0.0:110 0.0.0.0:* listen
则说明110端口已经开始正常服务。
imap服务器安装测试
实现对imap的支持非常简单,只需要安装imap软件包的rpm包:
[root@email rpm]# rpm -ivh imap-4.7-5.i386.rpm (这里是在6.2环境下,如果在7.x环境下需要安装更高版本的imap)
然后确保/etc/inetd.conf文件中imap所在行如下图所示:
imap stream tcp nowait root /usr/sbin/tcpd imapd
然后重新启动inetd以更新配置:
[root@email /]# kill -hup 379 (这里379是inetd的进程号)
然后查看imap是否成功启动:
[root@email /]# netstat -ln|grep 143
注:对于6.2版本的imap-4.7来说 支持imap2,所以是143端口。rh7.x的imap-2000会支持imap3,因此可能还会监听220端口)
这时候就可以在outlook express中添加账号进行测试了。
测试
接下来是测试邮件服务器的邮件发送/接收功能,注意:测试时,不要在只对本地用户进行测试,如:你的域为abc.com,测试时,不要只在邮件服务器上通过mail、elm等程序测试用户。因为,此时user1是本地用户,所以邮件服务器可以对其进行relay。你应该从局域网上的另一台机器使用outlook等邮件客户端对服务器进行收发测试。
这种配置对于ip固定用户没有问题,只需要在access文件中指定其固定ip即可,而对于需要支持流动用户,如拨号用户的应用则不大适合,因为如果完全打开relay功能可能导致邮件服务器的称为垃圾邮件的转发站。
解决用户ip不固定问题有两种方案,一种为采用smtp认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(dynamic relay authorization control),其工作原理为:拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则drac自动在access.db中加入刚才收邮件用户的ip,并允许此ip可以发信。不过,30分钟内,此ip不发/收邮件的话,drac将从access.db中删除此ip。此种机制保证拨号用户在没有smtp认证的情况下,也可以通过远程邮件服务器发送e-mail。 这些技术将在以后的文章内讨论。
faq
1、sendmail如何设置虚拟域?
如同apache一样,sendmail也允许使用虚拟主机功能,这是通过在mc文件中feature(virtusertable)功能实现的,而虚拟主机的文件缺省是/etc/mail/virtusertable.db,它用/etc/mail/virtusertable文件生成,这个文件的形式类似于aliases文件,即左地址 右地址
,中间用tab键分开。例如:
localuser
这样一行意味着本来应该发送给的邮件现在要发送给本机的用户localuser。当然,这意味着:第一,你的dns记录中,本机应该是otherdomain.com的mx交换器;第二,你的本机sendmail.cw文件或local-host-names应该包含otherdomain.com这个名字。
当然纯粹的这样的域意义不大,但是sendmail还支持邮件虚拟域的参数翻译。例如:
@testdomain.com
意味着所有发往的邮件都会被发送到 。而
@testdomain.com
则代表参数转义,例如的邮件被发送到 ,被发送到 。同样,这样的功能也要通过mx记录和cw文件加上去。
bin: root
daemon: root
nobody: root
然后生成aliases库:
[root@email mail]# newaliases
然后,就可以启动sendmail了:
[root@email mail]# /usr/sbin/sendmail -bd -q20m
在第一次启动时可能出现如下的错误信息:
554 5.0.0 /etc/mail/sendmail.cf: line 41: unknown configuration line ""
554 5.0.0 /etc/mail/sendmail.cf: line 60: unknown configuration line ""
不要紧张,只需要使用vi编辑器将这些行删除即可,其实41、60等行都是空白行而已。删除以后再重新启动就应该没有问题了。
qpopper的安装配置
qpopper是unix/linux环境下的pop3服务器,该软件配合sendmail使用。其主要是实现支持用户通过pop3接收信件。
创建从/usr/mail指向/var/spool/mail/的链接:
[root@email src]# ln -s /var/spool/mail/ /usr/mail
解压qpopper软件包:
[root@email src]# tar xvfz qpopper4.0.3.tar.gz
[root@email src]# cd qpopper4.0.3
编译安装qpopper:
[root@email qpopper4.0.3]# ./configure
[root@email qpopper4.0.3]# make
[root@email qpopper4.0.3]# make install
安装成功以后,qpopper将会被安装在目录/usr/local/sbin/目录下。设置inetd启动qpopper。编辑/etc/inetd.conf,查找pop内容的一行,在其前面添加#号,然后在改行后面添加入下内容:
pop-3 stream tcp nowait root /usr/local/sbin/popper qpopper -s
然后查找inetd进程id号:
[root@email qpopper4.0.3]# ps ax|grep inetd
336 ? s 0:00 inetd
16872 pts/0 s 0:00 grep inetd
找到inetd进程号为226。然后重新启动inetd进程,重新读取配置文件:
[root@www qpopper4.0.3]# kill -hup 336
这时候查看系统服务端口号:
[root@email qpopper4.0.3]# netstat -ln|grep 110
tcp 0 0 0.0.0.0:110 0.0.0.0:* listen
则说明110端口已经开始正常服务。
imap服务器安装测试
实现对imap的支持非常简单,只需要安装imap软件包的rpm包:
[root@email rpm]# rpm -ivh imap-4.7-5.i386.rpm (这里是在6.2环境下,如果在7.x环境下需要安装更高版本的imap)
然后确保/etc/inetd.conf文件中imap所在行如下图所示:
imap stream tcp nowait root /usr/sbin/tcpd imapd
然后重新启动inetd以更新配置:
[root@email /]# kill -hup 379 (这里379是inetd的进程号)
然后查看imap是否成功启动:
[root@email /]# netstat -ln|grep 143
注:对于6.2版本的imap-4.7来说 支持imap2,所以是143端口。rh7.x的imap-2000会支持imap3,因此可能还会监听220端口)
这时候就可以在outlook express中添加账号进行测试了。
测试
接下来是测试邮件服务器的邮件发送/接收功能,注意:测试时,不要在只对本地用户进行测试,如:你的域为abc.com,测试时,不要只在邮件服务器上通过mail、elm等程序测试用户。因为,此时user1是本地用户,所以邮件服务器可以对其进行relay。你应该从局域网上的另一台机器使用outlook等邮件客户端对服务器进行收发测试。
这种配置对于ip固定用户没有问题,只需要在access文件中指定其固定ip即可,而对于需要支持流动用户,如拨号用户的应用则不大适合,因为如果完全打开relay功能可能导致邮件服务器的称为垃圾邮件的转发站。
解决用户ip不固定问题有两种方案,一种为采用smtp认证,即用户发送邮件以前,邮件服务器进行用户身份认证,通过则服务器为其发送邮件,否则拒绝发信;第二种方案是采用动态转发授权控制(dynamic relay authorization control),其工作原理为:拨号用户拨号上网后,首先收邮件,如果用户能正确收邮件,则drac自动在access.db中加入刚才收邮件用户的ip,并允许此ip可以发信。不过,30分钟内,此ip不发/收邮件的话,drac将从access.db中删除此ip。此种机制保证拨号用户在没有smtp认证的情况下,也可以通过远程邮件服务器发送e-mail。 这些技术将在以后的文章内讨论。
faq
1、sendmail如何设置虚拟域?
如同apache一样,sendmail也允许使用虚拟主机功能,这是通过在mc文件中feature(virtusertable)功能实现的,而虚拟主机的文件缺省是/etc/mail/virtusertable.db,它用/etc/mail/virtusertable文件生成,这个文件的形式类似于aliases文件,即左地址 右地址
,中间用tab键分开。例如:
localuser
这样一行意味着本来应该发送给的邮件现在要发送给本机的用户localuser。当然,这意味着:第一,你的dns记录中,本机应该是otherdomain.com的mx交换器;第二,你的本机sendmail.cw文件或local-host-names应该包含otherdomain.com这个名字。
当然纯粹的这样的域意义不大,但是sendmail还支持邮件虚拟域的参数翻译。例如:
@testdomain.com
意味着所有发往的邮件都会被发送到 。而
@testdomain.com
则代表参数转义,例如的邮件被发送到 ,被发送到 。同样,这样的功能也要通过mx记录和cw文件加上去。