Sendmail简单介绍

运维 系统运维
Sendmail是在Unix环境下使用最广泛的实现邮件发送/接受的邮件传输代理程序。本文就给大家简单介绍Sendmail的概念、工作流程、DNS设置。

人们在互联网上最常使用的就是电子邮件,很多企业用户也经常使用免费电子邮件系统。那Sendmail你一定接触过,本文就给那些准备接触和刚刚开始用的人们简单介绍下Sendmail

  sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。

  当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它。信件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,信件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器, 并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者察看自己的电子信箱。

  显然,邮件传输是从服务器到服务器的,而且每个用户必须拥有服务器上存储信息的空间(称为信箱)才能接受邮件(发送邮件不受这个限制)。可以看到,一个邮件传输代理的主要工作是监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接收到的邮件缓冲或者 提交给最终投递程序。有许多的程序可以作为信件传输代理,但是sendmail是其中最重要的一个,事实证明它可以支持数千甚至更多的用户,而且占用的系统资源相当少。不过,sendmail的配置十分复杂,因此,也有人使用另外的一些工具,如qmail、postfix等等。

  当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是ideal@linuxaid.com.cn,那么sendmail首先确定这个地址是用户名(ideal)+机器名(linuxaid.com.cn)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。

  DNS数据中,与电子邮件相关的是MX记录,例如在linuxaid.com.cn这个域的DNS数据文件中有如下设置:

  IN MX 10 mail

  IN MX 20 mail1

  mail IN A 202.99.11.120

  mail1 IN A 202.99.11.121

  显然,在DNS中说明linuxaid.com.cn有两个信件交换(MX)服务器,于是,sendmail试图将邮件发送给两者之一。一般来说,排在前面的的MX服务器的优先级别比较高,因此服务 器将试图连接mail.linuxaid.com.cn的25端口,试图将信件报文转发给它。如果成功,你的smtp服务器的任务就完成了,在这以后的任务,将由mail.linuxaid.com.cn来完成。在一般的情况下,mail换器会自动把信件内容转交给目标主机,不过,也存在这样的情况,目标主机(比如linuxaid.com.cn)可能并不存在,或者不执行smtp服务,而是由其mx交换器来执行信件的管理,这时候,最终的信件将保存在mx机器上,直到用户来察看它。

  如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么sendmail将是试图直接与来自邮件地址的主机对话并且发送邮件。例如,test@aidgroup.linuxaid.com.cnDNS中没有对应的MX记录,因此sendmail在确定MX交换器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。

通过上文介绍,那些新手能大概了解个差不多,其实sendmail很好学,知道点就好!

【编辑推荐】

  1. Sendmail 配置E-Mail服务器实现E-Mail灵活运用
  2. Sendmail 安装RPM包和编译源码
  3. 关闭Sendmail服务具体命令实现
  4. Sendmail 配置具体命令详解
  5. Linux sendmail配置安装实现
  6. 使用php sendmail Windows下配置方法
  7. 图文并茂 讲解Sendmail工作环境
责任编辑:赵鹏 来源: 互联网
相关推荐

2011-01-21 15:40:56

Sendmail

2011-01-21 09:09:22

Sendmail

2011-02-24 14:40:47

Proftpd

2011-02-23 13:28:12

2011-01-21 16:49:15

Zimbra

2009-06-17 17:59:01

介绍Spring

2011-02-22 16:38:03

Konqueror

2011-04-01 09:39:17

zabbix

2011-03-04 13:19:09

VSFTP介绍

2011-01-21 18:08:22

Qmail

2011-03-29 09:14:37

2011-01-21 15:59:21

Sendmail

2009-09-08 10:50:20

2010-06-12 14:44:54

BGP协议

2009-10-10 11:48:56

VB ConsoleP

2009-06-23 13:01:04

JSF应用

2009-07-02 12:56:01

JSP技术

2009-09-11 09:41:19

LINQ to SQL

2009-06-18 10:27:42

Spring Time

2009-06-23 13:55:17

JSF标签
点赞
收藏

51CTO技术栈公众号