Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
3年前关闭。
Improve this question
这个question让我开始思考,现在我意识到我对MTA的内部一无所知。
MTA到底做什么? SMTP协议之后的所有内容对我来说似乎都是不可思议的。假设我只想编写一个简单的MTA(或MDA)用于发送电子邮件,我需要学习/做什么?
编辑:我实际上并不打算编写MTA,我只是想了解它在内部如何工作。
想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
3年前关闭。
Improve this question
这个question让我开始思考,现在我意识到我对MTA的内部一无所知。
MTA到底做什么? SMTP协议之后的所有内容对我来说似乎都是不可思议的。假设我只想编写一个简单的MTA(或MDA)用于发送电子邮件,我需要学习/做什么?
编辑:我实际上并不打算编写MTA,我只是想了解它在内部如何工作。
最佳答案
---在以某种方式注意到您谈论可能编写MTA之后进行编辑-
要编写MTA,您需要打开服务器套接字。当某人连接时,您需要按照SMTP协议在该套接字上发送和接收文本(ascii)数据。 SMTP非常健谈,因此您可以期待几轮的交流。
最初的通信通常会告诉您是支持SMTP还是支持ESMTP。第二轮(可选)通信是确定安全性/加密/功能支持。最终,“客户端”侧将要求将消息发送到特定地址/一组地址。完成后,服务器将指示已准备好获取电子邮件的正文。邮件正文(及其最佳附件)全部发送完后,MTA会告诉您它已收到邮件。届时,MTA将充当通过DNS MX记录发现的其他MTA的客户端,以使您的电子邮件更接近其目标MTA,该MTA会将其复制到某人的收件箱中。
因此需要MTA,因为在客户端进行邮件传递等同于将实际信件交给邮局。邮局负责邮局之间的路由(与MTA到MTA的传输并行)。然后,目的地邮局负责将信件传递到邮局的邮箱或家庭住所(与计算机的收件箱平行)。
他们不会称呼它为电子邮件。
---原始帖子如下---
MTA将接受邮件,查看它是否可以转发或传递,响应是否可以转发或传递,然后在指示时转发或传递。
邮件如何接近其最终目的地通常与DNS有关。 DNS中的MX(邮件交换)记录指示负责(或至少更接近负责服务器的)特定电子邮件域名的服务器。如果不了解DNS的工作原理,就不可能完全了解电子邮件是如何接近其目的地的。
MTA通常查看传递地址,并且要么被配置为电子邮件地址的邮件域的“端点”,要么知道服务器XYZ离电子邮件地址的邮件域更近一跳。如果是端点,它将把消息从网络复制到某人的收件箱中。如果正在中继,它将把消息“转发”到下一个MTA。
10-06 05:42