红联Linux门户
Linux帮助

在红旗Linux 上怎么搭建邮件服务器阿

发布时间:2008-03-12 15:19:27来源:红联作者:wz20001981
小弟没以前没用过Linux,现在被安排在Linux上搭建邮件服务器。
我用的是桌面版的Linux,在网上找的邮件服务器搭建的资料都是用命令来的。
我命令不行阿,不知道在桌面怎么搭建,有什么好的邮件服务器系统。
文章评论

共有 5 条评论

  1. Change 于 2008-03-12 16:58:41发表:

    Red Hat Linux 9----架设邮件服务器

    作者: ljtbbs 发布日期: 2007-12-14 查看数: 353 出自: http://www.linuxdiyf.com


    1.安装Sendmail

      如果是完全安装Red Hat Linux 9.0,那么系统已经内置有Sendmail 8.12.8-4服务器。如果不能确定是否已经安装sendmail,可以在终端命令窗口输入如下命令:

      [root@ahpeng root] rpm -qa   grep sendmail

      如果结果显示为“sendmail-8.12.8-4”,则说明系统已经安装sendmail服务器。如果安装Red Hat Linux 9.0时没有选择Sendmail服务器,则可以在图形环境下单击“主菜单→系统设置→添加删除应用程序”菜单项,在打开的“软件包管理”对话框中确保选中“邮件服务器”选项,然后单击“更新”按钮,按照屏幕提示插入第一张安装光盘即可开始安装。

      另外,你也可以直接插入第1张安装光盘,定位到/RedHat/RPMS目录下的sendmail-8.12.8-4.i386.rpm安装包,然后在终端命令窗口运行以下命令即可开始安装进程:

      [root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm

      用类似的方法安装sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm,位于第3张安装光盘的/RedHat/RPMS目录下。

      2.启动/重新启动/停止Sendmail服务

      安装Sendmail服务器以后,最简单的启动方式是在终端命令窗口运行如下命令:

      [root@ahpeng root]/etc/rc.d/init.d/sendmail start

      应该会出现以下的结果,表明邮件服务器已经启动成功:

      启动 sendmail: [确定]

      启动 sm-client:[确定]

      除以上方式,我们还可以使用带参数的Sendmail命令控制邮件服务器的运行,例如:

      [root@ahpeng root]# sendmail -bd -q1h

      Sendmail的命令参数的含义如下:

      -b:指定Sendmail在后台运行,并且监听端口25的请求。

      -d:指定Sendmail以Daemon方式运行(守护进程)。

      -q:当Sendmail无法将邮件成功地发送到目的地时,它会将邮件保存在队列里。该参数指定邮件在队列里保存的时间。例子里的1h表示保留1小时。

      在终端命令窗口运行以下命令来重新启动Sendmail服务:

      [root@ahpeng root]#/etc/rc.d/init.d/sendmail restart

      在终端命令窗口运行以下命令来关闭Sendmail服务:

      [root@ahpeng root]#/etc/rc.d/init.d/sendmail stop

      我们还可以在终端命令窗口运行以下命令来检测Sendmail服务器的运行状态:

      [root@ahpeng root]# /etc/rc.d/init.d/sendmail status

      系统应该显示:

      sendmail (pid 3251) 正在运行…

      3.配置Sendmail

      Sendmail的配置十分复杂。它的配置文件是sendmail.cf,位于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。我们一般通过m4宏处理程序来生成所需的sendmail.cf文件。创建的过程中还需要一个模板文件,系统默认在/etc/mail目

      录下有一个sendmail.mc模板文件。

      我们可以根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,而无需直接编辑sendmail.cf文件。可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的。这里介绍创建sendmail.cf文件的步骤:

      (1)备份原有sendmail.cf文件

      在终端命令窗口运行以下命令:

      cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK

      (2)生成sendmail.cf文件

      根据sendmail.mc模板文件产生sendmail.cf配置文件,并导出到/etc/mail/目录下:

      m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

      (3)重启sendmail服务

      [root@ahpeng root] /etc/rc.d/init.d/sendmail restart

      很显然,用m4宏编译工具创建sendmail.cf文件比较方便,而且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmail.mc模板的大致内容如下:

      divert(-1)dnl

      ……

      include(/usr/share/sendmail-cf/m4/cf.m4)dnl

      VERSIONID(setup for Red Hat Linux)dnl

      OSTYPE(linux)dnl

      ……

      dnl #

      dnl define(SMART_HOST,smtp.your.provider)

      dnl #

      define(confDEF_USER_ID,8:12)dnl

      define(confTRUSTED_USER, smmsp)dnl

      dnl define(′confAUTO_REBUILD′)dnl

      ……

      这里介绍sendmail.mc模板的语法组成:

      dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。

      divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。

      OSTYPE (OperationSystemType):定义使用的操作系统类型,显然这里应该用linux代替OperationSystemType,注意要用一个反引号和一个正引号把对应的操作系统类型括起来。

      define:定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子:define(ALIAS_FILE,/etc/aliases)

      定义别名文件(alia file)的保存路径,默认是/etc/aliases

      define(STATUS_FILE, /etc/mail/statistics)

      sendmail的状态信息文件。

      4.为新用户开电子邮件账号

      在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击“主菜单→系统设置→用户和组群”菜单项,打开

      “Red Hat用户管理器”对话框,单击“添加用户”按钮,在出现的“创建新用户”对话框里指定用户名、登录口令即可,如图1所示。

      假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址Peter@YourDomain.com(此处的YourDomain.com用你自己域名代替)。

      以上过程也可以在终端命令窗口运行以下命令来实现:

      [root@ahpeng root]#adduser peter -p peter

      5.为电子邮件账户设置别名

      有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。

      比如说,用户peter想拥有以下3个电子邮件地址:

      peter@YourDomain.com

      dearpeter@ YourDomain.com、truepeter@ YourDomain.com。

      我们可以通过以下步骤来实现这样的别名设置:

      新增一个账号peter;然后用vi、或者Kate等文本编辑器打开/etc/aliases,在里面加上两行:

      dearpeter: peter

      truepeter: peter

      保存该/etc/aliases退出。

      不过,就这样还不能让Sendmail接受新增的别名,我们必须在终端命令窗口运行newaliases命令,以要求Sendmail重新读取/etc/aliases文件。如果一切无误,应该可以看到类似以下的回应消息:

      [root@ahpeng root]# newaliases

      /etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total

      这样,发给peter的邮件可以使用3个邮件地址,而peter只需要使用一个电子邮件账号peter@YourDomain.com就可以接收所有寄给以上3个地址的电子邮件。

      6.指定邮箱容量限制

      当一个邮件服务器为许多人提供邮件服务时,无限量的电子邮件将很容易塞满服务器的硬盘,造成硬盘负担。如果不想为用户提供无限空间的邮件暂存空间,可以使用“邮件限额”来给用户一个有限的暂存空间。

      其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。

      7.支持POP和IMAP功能

      到现在为止,我们已经可以用Outlook Express发送邮件,或者登录服务器使用mail、pine命令收取、管理邮件。但是还不能用Outlook Express等客户端从服务器下载邮件,这是因为Sendmail并不具备POP3(IMAP)的功能,所以我们必须自己安装。

      (1)POP和IMAP服务器安装

      安装Red Hat Linux 9.0时,可以选择安装POP和IMAP服务器,可以在终端命令窗口运行以下命令进行验证:

      [root@ahpeng root]# rpm -qa imap

      imap-2001a-18

      如果没有安装,可以将第2张安装光盘放进光驱,然后在终端命令窗口运行以下命令即可开始安装:

      [root@ahpeng root]#cd /mnt/cdrom/RedHat/RPMS

      [root@ahpeng root]#rpm -ivh imap-2001a-18.i386.rpm

      由于Red Hat Linux 9.0已经将POP和IMAP打包成一个单独的套件,安装好imap-2001a-18.i386.rpm,就会同时安装这两个服务器

      (2)启动POP和IMAP服务

      要成功启动POP和IMAP服务器,首先要确定这些服务存在于/etc/services文件,确保以下的服务前面没有加上#注释(如果有,必须去除注释)。

      imap  143/tcp imap2  # Interim Mail Access Proto v2

      imap  143/udp imap2

      pop2  109/tcp pop-2  postoffice # POP version 2

      pop2  109/udp pop-2

      pop3  110/tcp pop-3  # POP version 3

      pop3  110/udp pop-3

      修改好/etc/services文件,接下来就要对相应服务配置文件进行定制:

      启动POP3服务:必须修改/etc/xinetd.d/ipop3文件,将其中的“disable=yes”改为“disable=no”,保存该文件。最后必须重新启动xinetd程序来读取新的配置文件,使得设定内容生效:

      [root@ahpeng root]#/etc/rc.d/init.d/xinetd reload

      启动IMAP服务:必须修改/etc/xinetd.d/imap文件,将其中的“disable = yes”改为“disable =no”,保存该文件。最后必须重新启动xinetd程序来读取新的配置文件,使得设定内容生效:

      [root@ahpeng root]#/etc/rc.d/init.d/xinetd reload

      设置好以后,就可以在Outlook Express里面设置好邮件账号,以后就可以直接利用Sendmail服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。

  2. Change 于 2008-03-12 16:58:06发表:

    LINUX邮件服务器搭建

    作者: Deaboot 发布日期: 2008-3-04 查看数: 117 出自: http://www.linuxdiyf.com
    1. 用以下命令查看系统是否安装了sendmail:
    [root@mail /root]# rpm -qa |grep sendmail
    sendmail-8.11.0-8
    2. 卸载sendmail:
    [root@mail /root]# rpm -e sendmail -nodeps
    3. 用以下命令杀死运行中的sendmail进程:
    [root@mail /root]# killall sendmail
    如果系统提示:
    sendmail: no process killed
    则说明当前系统中没有sendmail进程。
    4. 安装postfix:
    [root@mail /root]# rpm -ivh postfix-20010228release-2.i386.rpm
    若已经安装,则此步可以省略。(注:安装时最好用rpm包,会自动创建postfix用户和postfix组)
    5. 安装imap
    rpm -ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
    imap使pop3有效,即打开110端口。(注:安装时最好用rpm包)
    若已经安装,则此步可以省略。
    6. 检查系统中是否安装了cyrus-sasl
    执行以下命令查看系统中是否安装了cyrus-sasl:
    rpm -qa |grep cyurs
    如果您看到以下提示,则说明已经安装了cyrus-sasl
    [root@test bye2000]# rpm -qa |grep sasl
    cyrus-sasl-devel-1.5.24-17
    cyrus-sasl-1.5.24-17
    否则,请用rpm -ivh 命令先安装所需sasl-cyrus包。
    7.修改postfix用户
    同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用
    的用户宿主目录。
    编辑/etc/passwd文件中的相关条目如下所示:
    postfix:x:89:89::/no/where:/no/shell [编辑后,只修改蓝色部分就可以了]
    即:修改用户的Home directory和Shell 参照 /etc/passwd文件

    8.编辑postfix的主要配置文件/etc/postfix/main.cf,根据需求只需修改以下几个参数:
    1)mydomain
    指明你的域名,在这里我们指定:
    mydomain = xx.com
    2)myorigin
    myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。在这里我们指定:
    myorigin = $mydomain
    3)inet_interfaces
    inet_interfaces = all 监听所有端口
    4)mydestination
    mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix
    系统要接收什么样的邮件。通常与myorigin一样:
    mydestination = $mydomain
    5)mynetworks_style
    设置网络类型,我们指定:
    mynetworks_style = subnet
    6)ynetworks
    定义可以使用的此smtp服务器发信的客户ip地址,因为公司的ip范围已知,所以我们
    指定:
    mynetworks = 192.168.1.0/24
    注:此项可根据情况而定,主要是指定ip范围,假如公司的ip划分是按照网段来的,例如:10.10.1.0~10.10.1.9,10.10.3.0~10.10.3.9等等更细。根据需要,该项可以不设置。
    7)SMTP的配置
    为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/main.cf文件的最后添加以下几行:
    smtpd_sasl_auth_enable = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated
    permit_auth_destination reject
    broken_sasl_auth_clients = yes
    smtpd_sasl_security_options = noanonymous
    说明如下:
    smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。

    smtpd_recipient_restrictions = permit_sasl_authenticated
    permit_auth_destination reject
    仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
    broken_sasl_auth_clients = yes
    有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
    smtpd_sasl_security_options = noanonymous
    控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
    9.配置SASL
    进入/usr/lib/sasl/目录,用touch新建这样一个文件:
    [root@test sasl]# touch smtpd.conf
    在该文件中加入以下内容:
    [root@test sasl]# more smtpd.conf
    pwcheck_method:pam
    也就是指定通过PAM来进行用户认证。
    10.配置PAM
    进入/etc/pam.d/目录,用touch新建这样一个文件:
    [root@test pam.d]# touch smtp
    在该文件中加入如下内容:
    [root@test pam.d]# more smtp
    #%PAM-1.0
    auth required /lib/security/pam_stack.so service=system-auth
    account required /lib/security/pam_stack.so service=system-auth
    也即和/etc/pam.d/pop文件的内容是一致的。
    11.修改/etc/shadow文件权限
    因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
    权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
    执行以下命令,让root组也可以读取shadow:
    [root@test /etc]# chmod 640 /etc/shadow
    然后再将postfix用户加入root组,采用以下命令:
    [root@test /etc]# usermod -G root postfix

    12.编辑postfix的主要配置文件/etc/postfix/master.cf
    # ========================================
    # service type private unpriv chroot wakeup maxproc command + args
    # (yes) (yes) (yes) (never) (100)
    # ========================================
    smtp inet n - n - - smtpd
    这里开始
    #smtps inet n - n - - smtpd
    # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
    #submission inet n - n - - smtpd
    # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
    这里结束
    #628 inet n - n - - qmqpd
    把我标的注释部分去掉即可。
    13.配置pop3
    RedHat7.0已经使用xinetd代替了以前的inetd,为了使pop3服务启动,我们编辑
    /etc/xinetd.d/ipop3文件,将其中的disable = yes改为disable = no 以便启动pop3
    服务。
    为了使改动生效,执行以下命令:
    /etc/rc.d/init.d/xinetd reload
    14.启动postfix
    执行以下命令启动postfix:
    /etc/rc.d/init.d/postfix start
    这样,一个支持SMTP认证的postfix邮件服务器就配好了。

  3. wz20001981 于 2008-03-12 16:44:07发表:

    :0w5ty(1

    [ 本帖最后由 wz20001981 于 2008-3-12 17:14 编辑 ]

  4. wz20001981 于 2008-03-12 16:27:11发表:

    去官网上看了
    倒是有几个关于邮件服务器的
    但都是华丽狂拽型的
    没有我们老百姓看的朴实入门型的啊

    楼上的老大有没有好的文章推荐下 谢谢

  5. lfedorax 于 2008-03-12 15:39:25发表:

    红旗都有文档,里面就是服务器的介绍,到官方找下