热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux组网入门(3):E-Mail服务器

文章标题:Linux组网入门(3):E-Mail服务器。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  
   在Internet出现WWW服务之前,电子邮件系统曾经是使用最为广泛的一种应用服务。电子邮件为人们的沟通带来了方便,眨眼间,通过Internet传送着各种各样的祝福和消息。它为人们的沟通增加了许多方便。
  
  6.1 电子邮件系统的工作原理
   电子邮件系统的运作方式与其它的网络应用有着根本上的不同。在其它的绝大多数的网络应用中,网络协议直接负责将数据发送到目的地。而在电子邮件系统中,发送者并不等待发送工作完成,而是仅仅将要发送的内容发送出去。
  例如:文件传输协议(FTP)就象打电话一样,实时地接通对话双方,如果一方暂时没有应答,则通话就会失败。而电子邮件系统则不同,发送方将要发送的内容通过自己的电子邮局将信件发给接收方的电子邮局。如果接收方的电子邮局暂时繁忙,那么发送方的电子邮局就会暂存信件,直到可以发送。而当接收方未上网时,接收方的电子邮局就暂存信件,直到接收方去取。可以这么说,电子邮件系统就象是在Internet上实现了传统邮局的功能,而且是更加快捷方便地实现。
  现在作为一个普通的用户想要连接到Internet,那么就必须找一家Internet服务商(ISP)提供连接服务。在中国,最大的ISP就是中国电信。ISP在提供连接的同时,还会提供一个电子邮局,分配一个电子信箱给用户使用。而且在Internet上还有许多免费的电子邮局提供电子邮件服务。
   值得一提的是,电子邮件总是有一个空间大小的叙述,这是什么意思呢?也就是电子邮局给每个用户所提供的暂存信件的空间。当然,越大越好嘛。
  
  6.2 电子邮件的标准
   电子邮件的协议标准是TCP/IP协议族的一部分。它规定了电子邮件的格式和在邮局间交换电子邮件的协议。
   每个电子邮件都分为两部分:邮件头和邮件内容。TCP/IP对电子邮件的邮件头的格式作了确切的规定,而将邮件内容的格式让用户自定义。在邮件头中最重要的两个组成部分就是发送者和接收者的电子邮件地址。电子邮件地址的格式如下:
  用户名@电子邮局域名 例:abc@990.net
   而电子邮件的传输协议(也就是在邮局间交换电子邮件的协议)主要有SMTP(简单邮件传输协议)、POP(电子邮局协议),以及现在新兴的IMAP(互联网邮件应用协议)。
  
  6.3 电子邮件系统的组成
   整个电子邮件应用系统由两大部分构成:
   1. 电子邮局系统;
   2. 电子邮件发送、接收系统。
   电子邮件发送、接收系统则象遍及千家万户的邮箱,发送者和接收者通过它将邮件从电脑中发送和接收邮件。这个部分是一个运行在电脑中的客户端程序,最常用的有Microsoft的Outlook Express,Netscape,The Bat,Foxmail,方正飞扬等。用户可以根据自己的喜爱来选择不同的程序。它们从根本上说,实现的功能是一样的。
   电子邮局行使着像传统邮局的功能,它在发送者和接收者之间起着一个桥梁作用。它是运行在电子邮局服务器上的一个服务器端程序。最常用的有Microsoft的IIS和sendmail等。而在这里我们介绍的就是功能强大的、免费的,基于类UNIX操作系统的电子邮件服务端程序sendmail的最基本的配置与使用方法。
  
  6.4 安装sendmail
   如果你在安装LINUX的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。
   如果你在安装时没有选择,或者你需要升级sendmail就可以使用以下方法进行。
   1. 通过RPM包来安装或升级(仅用于RedHat LINUX):
   1) 首先在光盘上或Internet上找到下面几个RPM包:
   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/
   2) 展开源代码:
   cd /hometar ?zxvf sendmail-8.9.3.tar.gz
   这样就会在/home目录下建立一个sendmail-8.9.3目录:
   /home/sendmail-8.9.3/README
   /home/sendmail-8.9.3/src
   /home/sendmail-8.9.3/cf
   /home/sendmail-8.9.3/doc
   3) 编译:由于sendmail自己带了一个编译程序Build,所以不用make命令:
   cd /home/sendmail-8.9.3/src
   ./Build
   install
  
   6.5 用sendmail构建一个E-Mail服务器
   当我们在系统中安装了sendmail后我们就可以使用这台机成为我们的电子邮局了。因为sendmail的功能强大,配置繁琐。所以我们在下面的介绍中举一个架设供一个公司使用的Internet E-Mail服务器为例进行讲述。
   以下的设置也能运用在较大的电子邮局应用中,但是随着的用户数的增多,将会使得整个邮局的性能有所下降,这时也就相应地要进行更加深入的配置工作。考虑到本书是一个入门级的读物,我们就不进行深入的讨论。有兴趣的读者可以参看相应的书籍。
   总而言之,我希望在本章节的描述后,能使大家够迅速地使用LINUX架设一个小型的实用的电子邮局。下面我们就开始吧!
  
   6.5.1 设置sendmail作为守卫进程(daemon)启动
   如果你在安装LINUX的时候,选择了E-Mail服务。那么,sendmail就已经成为一个守卫进程启动了。所谓的守卫进程,指的是它就象DOS操作系统中的常驻内存程序一样,运行后,它们在后台侦听,当需要它进行服务的时候,它就完成特定的功能和服务。在LINUX系统中有许许多多的服务就是以守卫进程的方式启动着的。
   你可以使用以下命令来确认sendmail是否已经启动。
   ps ?A|grep 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
  
   6.5.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的帮助文档。在此就不再详述。
  
   6.5.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
  
   6.5.4 为新用户开E-Mail帐号
   其实,在LINUX中,要为一个新的用户开E-Mail帐号是十分简单的。只要在LINUX系统中新增一个用户就可以了。那么这个用户帐号和密码就是E-Mail的帐号和密码。
   例如,我为一个新用户test开一个E-Mail帐号。就用以下命令:
   adduser testpasswd test
   这样,这个新用户的E-Mail地址就是:
   test@company.com
   密码当然就是帐号的密码了。
  
   6.5.5 为E-Mail帐号设置别名
   如果,有一些用户想使用多个E-Mail地址,是不是就要为他开多个帐号呢?如果是这样就会增加对帐号管理的难度。所以LINUX给我们提供了一种方法:设置别名。
   比如说,一个用户叫“王大明”,它想拥有以下的几个E-Mail地址:
   wdm@company.com
   wangdm@company.com
   daming@company.com
   我们就通过以下步骤来实现这样的别名设置。
   1. 以root登录服务器;
   2. 新增一个账号wdm;
   3
推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
author-avatar
禁灭19
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有