这里总结下邮件发送的基本过程,
1.一台邮件服务器,可能作为邮件的出发点,也可以作为邮件的目的地,甚至可以作为邮件的中间转运站。
由图可以看到,1可能是你用来发送邮件的软件,程序(MUA),2则为信件到达的第一台邮件服务器,可以认为2这台邮件是邮件服务器链里的出发地。自然3就是中转节点,4为目的节点。
中间服务器可有可无
2.邮件在网络上的流动过程
举例:使用83378122@163.com给dxt02880466@qq.com发送邮件
(1)163发送程序检查目标邮箱的域名qq.com
(2)如果目的邮箱为本地域名,则调用本地MDA发送邮件(localmessage)。可惜不是。
进入转发流程RELAY
(3)通过dns查询qq.com的MX记录,
并按照优先顺序选择优先级最高的mx服务器,这里是mx3.qq.com
(4)通过DNS查询mx3.qq.com的A记录
(5)尝试连接MX3.QQ.COM
(6)如果连接失败,则选择第二优先级MX mx2.qq.com,重试步骤4,仍然不行尝试mx3
(7)如果所有MX都连接失败,则返回不发连接异常(有的系统会有重试或者软弹回)
(8)如果连接成功,则使用SMTP发送邮件给这个邮件网关。
(9)当然如果接受域没有mx记录,则尝试查询其A记录并发送邮件到A记录。如果MX记录和A记录都连不上,则视为不可发送返回给发件人。
(10)最后qq邮箱在接收到递送过来的邮件后会执行第二步。
3.《lINUX E-MAIL》中关于DNS记录在email中应用的说明
How does an SMTP server discover to which host a message for a certain domain should be delivered? The recipient domain is, not surprisingly, used as the key in one or more DNS lookups. The first lookup that is made is for the mail-specific MX record—the mail exchanger record type. The MX entry allows the DNS operator to specify the hostname or hostnames of servers that can receive mail for a certain domain. For example, MX records can be used to specify that messages to someone at example.com should be sent to mail.example.com. If the recipient domain does not have an MX record, an attempt is made to find an A record for the recipient domain. If the A record lookup succeeds, the mail will be delivered to the host. If both the MX and A lookups do not return any results, the message is deemed undeliverable and is returned to the sender.
4.图解一下传输过程。
好吧 我承认这个本来就很简单,但是画个图又不会怀孕。。 - -||、
- 大小: 73.8 KB
- 大小: 129.5 KB
分享到:
相关推荐
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
本文将详细介绍邮件收发原理、邮件发送基本过程与概念、邮件协议、邮件服务器的工作原理、JavaMail发送邮件等知识点。 邮件收发原理可以分为六个步骤:用户A写好邮件通过邮件客户端软件发送到QQ邮箱服务器、QQ邮箱...
通过学习和理解这些源代码,开发者不仅可以掌握邮件发送的基本原理,还能了解到如何在易语言环境中高效地利用外部库来扩展程序功能。同时,提供的示例代码和使用说明能够帮助初学者更快上手,降低开发难度。
这个过程通常包括以下步骤: 1. 创建SmtpClient对象,并配置SMTP服务器的地址、端口、认证方式等参数。 2. 创建MailMessage对象,设置发件人、收件人、主题和邮件正文。 3. 使用SmtpClient对象的Send方法将...
总的来说,电子邮件发送程序是IT基础设施的重要部分,它不仅涉及网络通信的基本原理,还与信息安全、用户体验等多个领域紧密相关。理解和掌握其工作流程和技术细节对于开发者、系统管理员以及普通用户来说都十分必要...
"即兴之作"可能意味着这是一个开发者临时创作或实验性的项目,可能未经过严格的测试或优化,但可以作为一个基础模板来理解邮件发送的基本原理。 标签中的“邮件”和“e-mail”都是指电子邮件,是互联网上普遍使用的...
总的来说,“邮件发送依赖包”是一个包含所有必需库的集合,它简化了Java应用程序发送邮件的过程。通过理解这些库的作用以及如何在项目中正确使用它们,开发人员可以高效地实现邮件功能,无论是简单的文本邮件还是...
Java邮件发送组件是Java开发中用于发送电子邮件的工具,它使得开发者能够轻松地在应用程序中实现邮件功能。Java Mail API是实现这一功能的核心库,它提供了丰富的接口和类,允许程序进行邮件的创建、发送以及处理。...
易语言SMTP邮件发送是一种在编程中利用SMTP(Simple Mail Transfer Protocol)协议实现电子邮件发送的方法,主要应用于易语言编程环境中。SMTP是互联网上用于传输电子邮件的标准协议,它允许用户通过一个服务器将...
根据给定的信息,本文将详细解释与邮件发送相关的技术知识点,包括使用Jmail组件、ASP脚本语言进行邮件发送的基本原理和技术实现。 ### Jmail组件介绍 Jmail是一款功能强大的邮件处理组件,它支持多种编程语言环境...
邮件发送客户端程序的设计基于SMTP,目的是将理论学习与实践结合,提升团队合作能力,同时也让学生深入理解TCP/IP协议和邮件传输的基本原理。 设计任务主要包括以下几个方面: 1. **邮件服务器配置**:客户端需要...
在本文中,我们将详细介绍如何使用 SMTP 协议发送邮件,包括邮件的基本结构、邮件发送的步骤、SMTP 客户端的使用、邮件附件的添加等相关知识点。 SMTP 协议简介 SMTP(Simple Mail Transfer Protocol)是一种基于 ...
邮件发送程序是MFC应用的一个常见需求,特别是在需要自动化发送通知或报告的场景下。本篇文章将深入探讨如何使用MFC来实现邮件发送功能,包括添加附件,如图片和文本文件。 首先,我们需要了解SMTP(Simple Mail ...
通过学习和实践,开发者可以掌握Asp.Net中邮件发送的基本操作,并了解如何集成和使用第三方邮件组件。在实际项目中,可以根据需求选择使用Asp.Net内置的邮件服务,或者选择更复杂的JMail或HSLSendEmail插件来实现更...
在.NET框架中,发送电子邮件是一项常见的任务,尤其在开发Web应用...总的来说,`.NET邮件发送demo`项目是为了帮助开发者理解并实践在.NET环境中发送电子邮件的过程,通过学习和实践,可以提高在实际项目中的应用能力。
描述中提到的“实现邮件发送的一个小程序,可以实现基本功能”,意味着这个程序能够完成发送邮件的基本流程,可能包括如下步骤: 1. **连接SMTP服务器**:SMTP(Simple Mail Transfer Protocol)是互联网上用于发送...
这个“简易java邮件发送工具”显然是基于JavaMail API构建的,旨在简化邮件发送的过程,尤其针对Yahoo、Sina、Sohu和163等常见邮件服务商。用户无需登录到这些网站的网页界面,只需在拥有Tomcat或WebLogic等应用...
在Linux环境下,使用纯C语言实现邮件发送是一个挑战性的任务,因为这涉及到对网络协议的理解以及C编程的熟练掌握。本教程将深入讲解如何利用POP和SMTP协议来完成这一过程。 首先,POP(Post Office Protocol)是...
以上就是关于在线邮件发送的基本原理和实现方式。在实际项目中,还需要考虑错误处理、用户界面交互、邮件格式化、附件添加等功能。对于初学者,了解并实践这些内容有助于提升Web开发技能,特别是涉及到服务器端编程...
下面是一段基本的邮件发送代码示例: ```csharp using System.Net; using System.Net.Mail; // 创建SmtpClient对象 SmtpClient smtp = new SmtpClient("smtp.example.com"); smtp.Port = 587; // 使用TLS安全连接 ...