首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 冲浪宝典-> 邮件工具
用sendmail配置你的第一台e-mail服务器_qmail
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

  随着互联网的发展,e-mail迅速成长成为主要的网络信息传递工具。面对大量要求能够快速,廉价,和高可信赖的e-mail需求,很多公司和个人都把linux提供的服务作为满足这些需求的解决方案。

  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.

,
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·25m的hotmail免费邮箱申请方法
·用C#下的Raw Socket编程实现网络封包监视-.NET教程,C#语言
·Java JDBC连接的一个例子-JSP教程,Java技巧及代码
·Java Swing入门基础-JSP教程,Java技巧及代码
·Java用户界面本地化实例探索-JSP教程,Java技巧及代码
·有数据绑定、排序、查找功能的ListView(一)-.NET教程,数据库应用
·有线电视3信号放大器特点及常见故障分析
·[ASP.NET]使用C#开发Socket通讯-.NET教程,C#语言
·Session 详解-ASP教程,ASP应用
·ASP.net 2005 Treeview 无限分类非地递归终极解决方案-.NET教程,Asp.Net开发
最新文章
·做google月入一万rmb提示交流_网赚技巧
·英文视频:google adsense技巧视频教程_网赚技巧
·专访51auto创始人:5句话融到4000多万_站长访谈
·站长访谈—sen:骨灰级站长的10年网络生涯_站长访谈
·站长访谈:天涯—曾经的hacker,现在的我_站长访谈
·个人网站如何才能成功?_站长心得
·网站如何获得成功?确定目标是关键_站长心得
·blog广告新创意:review me_站长心得
·利用dns技术解决internet南北互访_站长心得
·googleadsense常用技巧总结_google推广
相关主题
  • 用sendmail发送html格式的邮件_qmail
  • 用sendmessage实现剪贴板操作_visualbasic教程
  • 用sendmessage函数实现vb程序的查询功能_visualbasic教程
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭