`
kuiyuexiang
  • 浏览: 55902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

SendMail最初是1979年由Eric Allman编写而成。它起先运行在BSD 4.0平台上。但这个程序不够灵活,每次编译的时候都需要重新配置。随着TCP协议和其他方面的发展,它本身的不灵活性已经明显不能满足日益增长的需求。 Eric Allman决定重新编写SendMail,从而诞生了现在的MTA标准。这是对SendMail的简短介绍.我们这篇文章主要是示范如何在一台新装的 redhat 7.1上用配置SendMail8.11.2 服务,构架你的e-mail服务器.
redhat7.1默认安装的时间已经安装了 SendMail 8.11服务.因为redhat安装使用都非常的简单,我们这里就忽略安装过程,相关资料请查阅redhat CD里的文档.要使你的新e-mail服务器正常工作,必须先解决DNS问题.把你的e-mail服务器的主机名和ip地址加入到DNS中,并用 nslookup来确认:

  [root@testmail /root]# nslookup -sil testmail.blank.com
  Server: 192.168.100.1
  Address: 192.168.100.1#53

  Name: testmail.blank.com
  Address: 192.168.100.134

  同样你也要试一下反向域名解析,这个对防止邮件延迟有很重要的作用.现在大部分的邮件服务器都是把反向域名解析作为邮件传送时认证的一部分.所以用的你ip地址来试一下反向域名解析是否正确.

  [root@testmail /root]# nslookup -sil 192.168.100.134
  Server: 192.168.100.1
  Address: 192.168.100.1#53

  134.100.168.192.in-addr.arpa name = TESTMAIL.blank.com.

  正如你所看到的,DNS服务工作正常,接下去就让我们动手来配置SendMail服务.redhat 7.1 默认安装已经可以使SMTP服务在本机运行.

  你用netstat -nl可以看到所有后台程序监听的端口,注意这一行:127.0.0.1:25,这个表示SendMail服务已经在监听本机的25(SMTP)端口了:

  [root@testmail /root]# netstat -nl
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address Foreign Address State
  tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
  tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
  tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
  udp 0 0 0.0.0.0:32768 0.0.0.0:*
  udp 0 0 0.0.0.0:667 0.0.0.0:*
  udp 0 0 0.0.0.0:111 0.0.0.0:*
  Active UNIX domain sockets (only servers)
  Proto RefCnt Flags Type State I-Node Path
  unix 2 [ ACC ] STREAM LISTENING 1119 /dev/gpmctl
  unix 2 [ ACC ] STREAM LISTENING 1172 /tmp/.font-unix/fs7100
 但这个仅仅表示e-mail服务器只接收你本机的邮件.为了解决这个问题,你必须修改配置,告诉SendMail去监听你对外的网卡地址.假设你的服务器上只安装了一块网卡(eth0),并用ifconfig配置好你的ip地址.这个地址可以和DNS解析的地址不一样,但你要保证DNS可以正确地解析邮件服务器的地址.这里我们使用的地址是一样的(推荐):

  [root@testmail /root]# ifconfig
  eth0 Link encap:Ethernet HWaddr 00:60:97:DE:E9:99
  inet addr:192.168.100.134 Bcast:192.168.100.255 Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
  RX packets:12421 errors:0 dropped:0 overruns:0 frame:0
  TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:100
  Interrupt:10 Base address:0xe000

 

  lo Link encap:Local Loopback
  inet addr:127.0.0.1 Mask:255.0.0.0
  UP LOOPBACK RUNNING MTU:16436 Metric:1
  RX packets:6 errors:0 dropped:0 overruns:0 frame:0
  TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0

  可以看到这台主机的eth0的ip地址是192.168.100.134.现在修改/etc/SendMail.cf文件来配置SendMail的监听端口:

  # SMTP daemon options
  O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

  更改为

  O DaemonPortOptions=Port=smtp,Addr=192.168.100.134, Name=MTA

  改完后保存退出,并且重新启动SendMail服务:

  [root@testmail /root]# /etc/init.d/SendMail restart
  Shutting down SendMail: [ OK ]
  Starting SendMail: [ OK ]
  [root@testmail /root]#

  现在可以用netstat -nl来查看是不是已经更改了.如你所看到的,SendMail的监听端口现在是eth0的ip地址:192.168.100.134了.
  [root@testmail /root]# netstat -nl
  Active Internet connections (only servers)
  Proto Recv-Q send-Q Local Address Foreign Address State
  tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN
  tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
  tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
  tcp 0 0 192.168.100.134:25 0.0.0.0:* LISTEN
  udp 0 0 0.0.0.0:32768 0.0.0.0:*
  udp 0 0 0.0.0.0:667 0.0.0.0:*
  udp 0 0 0.0.0.0:111 0.0.0.0:*
  Active UNIX domain sockets (only servers)
  Proto RefCnt Flags Type State I-Node Path
  unix 2 [ ACC ] STREAM LISTENING 1119 /dev/gpmctl
  unix 2 [ ACC ] STREAM LISTENING 1172 /tmp/.font-unix/fs7100
  [root@testmail /root]#

  ///////////////////////////////////////////////////////////////

  现在SendMail已经可以接收来自外部的连接了.我们还需要设定SendMail允许接收的域名.这个可以在/etc/mail/local-host-names文件中设定.就把域名输入进去就可以了:

  # local-host-names - include all aliases for your machine here.
  blank.com

  保存退出后重新启动SendMail服务:/etc/init.d/SendMail restart .这样SendMail就可以接收来自多个域的信件了.

  如果你需要再增加新的域,只有修改这个文件就可以了.
  现在的e-mail服务器在本机上已经可以完全正常的工作.它已经可以接收来自任何地方的信件(允许的域),但如果想要发送和传递邮件,则必须在这台电脑上执行.如果你的用户都直接登录到你的服务器上来发送邮件,则不需要更改任何配置,如果你希望大部分或者所有的用户可以在远程主机上使用该e-mail 服务器,例如利用KMail和Outlook Express等客户端工具,则你必须更改配置来允许这些主机使用你的e-mail服务器.你需要在/etc/mail/access文件中加入下面一行,保存后运行make access.db 的命令来生成access.db文件.

  blank.com RELAY

  改完后的access文件应该是这样的:

  # Check the /usr/share/doc/SendMail-8.11.2/README.cf file for a
  description
  # of the format of this file. (search for access_db in that file)
  # The /usr/share/doc/SendMail-8.11.2/README.cf is part of the
  SendMail-doc
  # package.
  #
  # by default we allow relaying from localhost...
  localhost.localdomain RELAY
  localhost RELAY
  127.0.0.1 RELAY
  blank.com RELAY

 

  然后运行:

  [root@testmail mail]# make access.db
  [root@testmail mail]#

  这个make access.db命令把你的新的设定添加到SendMail的hash数据库里.SendMail用它来判断允许那些主机通过你的e-mail服务器来传递邮件.而且这样还可以通过设定子网(例如:192.168)来限制该域.但你要注意,这样设定就对外开放了,可能会有人发大量的垃圾信件来攻击你的系统.

  现在你可以收到所有来自外部的邮件.并且允许信赖的客户在远程传递信件.接下去你想要做的可能是如何在远程收取这些信件.要达到这个目的,你需要安装IMAP 或者 POP. redhat 7.1 默认安装的时候并没有安装POP/IMAP,所以你需要安装imap-2000-9 rpm包.要查看这个包的安装状态,可以用下面的命令:rpm -aq | grep -i imap.如果发现没有安装,那就把redhat 7.1第二张安装光盘放到光驱里.然后运行如下命令:

  [root@testmail mail]# mount /dev/cdrom /mnt/cdrom
  mount: block device /dev/cdrom is write-protected, mounting read-only
  (Successful Mount of Read-Only Media)

  mount上光盘后运行这个命令来安装这个包:rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap-2000-9.i386.rpm.
  [root@testmail mail]# rpm -Uvh /mnt/cdrom/RedHat/RPMS/imap-2000-9.i386.rpm
  Preparing... ########################################### [100%]
  1:imap ########################################### [100%]
  再运行一次 rpm -aq | grep -i imap

  IMAP 包就罗列出来了。

  [root@testmail mail]# rpm -aq | grep -i imap
  imap-2000-9
  [root@testmail mail]#
 当正确的包被安装后你要打开POP3的连接端口,这需要修改/etc/xinetd.d/下面的ipop3文件,把disable的值改成no。这个文件大致是这样的:

  # default: off
  # description: The POP3 service allows remote users to access their mail

 

  # using an POP3 client such as Netscape Communicator, mutt,

  # or fetchmail.
  service pop3
  {
  socket_type = stream
  wait = no
  user = root
  server = /usr/sbin/ipop3d
  log_on_success += USERID
  log_on_failure += USERID
  disable = no
  }

  接下去重新启动xinetd来是它生效:

  [root@testmail xinetd.d]# /etc/init.d/xinetd restart
  Stopping xinetd: [ OK ]
  Starting xinetd: [ OK ]
  [root@testmail xinetd.d]#

  现在就可以发送一封测试邮件到你的e-mail服务器,并且用你熟悉的收信工具来收取这封信。应该是没有问题的。

  下面优化一下服务器的性能。或许你会收到这样的抱怨,说是当客户端程序运行在防火墙后面的话会发生连接pop端口速度变慢。

  造成这个延时的原因是你的e-mail服务器初始一个IDENT会话来确认客户端的身份。如果这个询问没有反应,那服务器就会在5秒后发出一个超时信号。这个值可以降低到1秒,从而减少IDENT产生影响。修改/etc/SendMail.cf文件,把timeout的值改成你想要的值。

  # timeouts (many of these)
  #O Timeout.ident=5s
  change to
  O Timeout.ident=1s

  现在你的e-mail服务器可以给你的用户提供服务了。当然还有更多的配置可以用来提高服务器性能,在这篇文章中就不多提了。Linux将会为你的e-mail服务提供一个稳定的,高效的平台。如果想了解更多的关于SendMail的知识,请访问www.SendMail.org.

分享到:
评论

相关推荐

    linux_sendmail配置详解

    ### Linux Sendmail配置详解 #### 一、电子邮件系统概述 在深入探讨Sendmail配置之前,我们首先了解一下电子邮件系统的几个核心组件及其作用。 1. **MUA(Mail User Agent,邮件用户代理)**:MUA是用户与邮件...

    linux配置SENDMAIL配置.pdf

    Linux 配置 Sendmail 服务器 Sendmail 是一个功能强大且广泛使用的邮件服务器软件,可以在 Linux 操作系统上安装和配置。下面是关于配置 Sendmail 服务器的详细知识点。 简介 Sendmail 是一种邮件传输代理(MTA...

    sendmail配置

    【sendmail配置】是Linux系统中构建邮件服务器的关键步骤,主要涉及SMTP(简单邮件传输协议)和POP3(邮局协议3)。sendmail是一个广泛使用的邮件传输代理(MTA),负责接收、处理、转发和投递电子邮件。在Linux环境...

    整个sendmail配置过程详解

    【sendmail配置过程详解】 sendmail是一款经典的电子邮件服务器软件,广泛用于Linux和Unix系统中,用于接收、转发和投递邮件。以下是对整个sendmail配置过程的详细解释: 1. **配置邮件域**: - 首先,你需要设置...

    linux sendmail 配置

    Sendmail配置是一项关键任务,因为它涉及到系统的邮件服务功能,包括内部通信、系统通知以及与外部邮件服务器的交互。本文将深入探讨Linux Sendmail的配置过程、核心概念和常见问题。 首先,我们需要理解Sendmail的...

    sendmail安装配置全过程

    9. 使用`make install-cf`安装sendmail配置文件,将sendmail.cf和submit.cf安装到/etc/mail。 10. 将sendmail.mc也拷贝到/etc/mail目录。 11. 在/etc/mail目录下,创建aliases、access、local-host-names文件,分别...

    网络操作系统课程设计报告(sendmail配置)

    3. **sendmail配置**:在Linux环境下安装和配置sendmail服务,包括软件包确认、配置文件修改等步骤。 4. **dovecot配置**:配置dovecot服务以提供POP3服务支持,便于邮件客户端访问。 5. **域名和用户账户设置**:...

    linux sendmail配置

    【Linux Sendmail配置详解】 在Linux环境中,Sendmail是一款经典的邮件服务器软件,广泛用于企业级邮件系统的构建。本文将深入探讨Sendmail的配置过程、涉及的协议和术语,以及如何在Linux系统上设置和管理邮件服务...

    sendmail配置资料

    【标题】:sendmail配置资料 【描述】:sendmail是一款经典的开源邮件传输代理软件,广泛应用于Unix/Linux系统中,用于处理电子邮件的收发。它提供了丰富的配置选项,可以适应各种复杂的网络环境和邮件系统需求。 ...

    使用sendmail配置企业简易邮件系统.docx

    ### 使用sendmail配置企业简易邮件系统 #### 一、引言 随着企业信息化的发展,电子邮件已成为内部沟通不可或缺的一部分。sendmail作为一款强大的邮件传输代理(MTA),被广泛应用于搭建邮件服务器。本文将详细介绍...

    Centos7 Sendmail配置

    Centos7 sendmail的配置步骤 Sendmail邮件服务器搭建 安装并配置sendmail服务器

    linux配置SENDMAIL配置借鉴.pdf

    Linux 配置 SENDMAIL 服务器配置指南 Sendmail 服务器是 Linux 中的一种邮件服务器软件,它可以提供 SMTP 服务,允许用户发送和接收邮件。下面是 Sendmail 服务器的配置步骤和相关知识点。 一、 Sendmail 服务器...

    sendmail服务器配置

    总的来说,配置sendmail服务器涉及多个环节,包括软件安装、DNS配置、sendmail配置文件修改、用户和权限设定,以及POP3服务器的设置。这个过程确保了邮件系统能够正确地发送和接收邮件,同时也关注了安全问题,如...

    linux配置SENDMAIL配置[收集].pdf

    【Linux配置SENDMAIL邮件服务器详解】 在Linux操作系统中,配置SENDMAIL邮件服务器是软件开发过程中一个重要的环节,尤其对于需要内部通信或者自动化脚本发送邮件的系统而言。SENDMAIL是一款广泛应用的邮件传输代理...

    linux配置SENDMAIL配置[借鉴].pdf

    综上所述,配置Linux上的Sendmail邮件服务器涉及多个步骤,包括安装、配置、安全设置和测试。理解SMTP和POP3协议以及MTA和MUA的角色对于成功部署和管理邮件服务器至关重要。此外,安全策略的实施是防止滥用和保护...

    Linux Sendmail 服务器详细安装配置手册

    SendMail 服务器配置任务是一个复杂的过程,需要逐步完成多个任务,包括配置单邮件服务器、配置邮件别名、配置邮件列表、配置邮件访问控制列表、配置双邮件服务器等。下面我们将逐步介绍每个任务的配置过程。 任务...

    linux下配置sendmail的图文详解

    hosts文件配置是Sendmail配置的重要组件,需要配置电脑名和域名信息。 知识点8: 防火墙和安全设置 防火墙设置和安全设置是 Sendmail 配置的重要组件,需要确保邮件服务器的安全性和可靠性。 本文档提供了详细的 ...

    linux sendmail邮件服务器的配置

    "linux sendmail邮件服务器的配置" Sendmail 邮件服务器是一种流行的邮件服务器软件,它可以在 Linux 平台上运行,提供简单邮件传输协议(SMTP)服务。Sendmail 配置需要考虑多个方面,包括邮件系统的组成、邮件...

Global site tag (gtag.js) - Google Analytics