在smtp邮件的DATA部分,From和To的功能是什么?

时间:2013-12-03 23:05:50

标签: smtp

我试图了解使用smtp发送邮件。我看到了一个例子,就像这样:

 HELO yourhost.yourdomain.edu
 MAIL FROM: <carol@yourhost.yourdomain.edu>
 RCPT TO: <msgs@host1.somewhere.com>
 RCPT TO: <alice@host2.somewhere.com>
 DATA
 Date: Sun, 30 Nov 98 nn:nn:nn EST
 From: Carol <carol@yourhost.yourdomain.edu>
 To:   <msgs@host1.somewhere.com>
 Cc:   <alice@host2.somewhere.com>
 Subject: Update

 Mike: Cindy stubbed her toe.  Bobby went to
    baseball camp.  Marsha made the cheerleading team.
    Jan got glasses.  Peter has an identity crisis.
    Greg made dates with 3 girls and couldn't
    remember their names.
 .
 QUIT

我感到困惑的是,我们在开始时已经有了MAIL FROM和RCPT TO,为什么我们还有来自:,To:和Cc:再次在DATA部分? RCPT TO:在标题和To:在DATA部分之间有什么区别?如果我们假设我们使用这些命令成功发送邮件,那么输出是什么?我的意思是接收器看到了什么?

由于

2 个答案:

答案 0 :(得分:3)

消息正文在协议的DATA部分传输。

但是,SMTP使用MAIL FROM和RCPT TO来记录信封信息(可能与实际消息不同)。这在邮件列表传递中最为明显,其中信封发送给实际收件人,而邮件正文通常只包含通讯组列表名称。

收件人只能看到DATA中的内容。当MTA(邮件传输代理)将内容放入邮件存储区以供MUA(邮件用户代理)检索并显示给用户时,信封将丢失。

由于可能存在不匹配的值,这产生了多年的问题(以及无穷无尽的垃圾邮件),但当RFC-822结构和SMTP传输协议及其后继者被认为是最合适的机制时,这被视为最合适的机制。的准备。

实际传输不要求以任何特定形式格式化邮件。这是接收系统验证的内容,以确保只接受格式良好的邮件进行本地传递。

答案 1 :(得分:1)

基本上:SMTP服务器(如Postfix)只对信封感兴趣(MAIL FROM和RCPT TO命令),邮件用户代理(如Thunderbird)只对邮件内容感兴趣(From:,To:和Cc)头)。

这与蜗牛邮件非常相似,信封上的地址和附带的信件通常是相同的,但不一定相同。

信封中的反向路径表示如果出现问题,将在何处发送退回邮件。它可能与From标头匹配,也许不匹配。例如,秘书以他老板的名义发送邮件。反向路径将包含秘书的电子邮件地址,From标题将包含老板的名称和邮件地址。邮件列表也是不同的,因为它是由Pekka写的。

前向路径(RCPT TO参数)是实际目的地。 SMTP服务器不知道是否必须将邮件传递给某人,因为他在To中,或者因为他在te Cc列表中。在Bcc地址的情况下,邮件内容中自然没有Bcc标题!毕竟它是抄袭。但是Bcc-ed收件人在RCPT TO命令中被列为转发路径,因此SMTP服务器将了解它们,用户不会。