smtp邮件数据部分的“发件人”和“收件人”的功能是什么?

smtp邮件数据部分的“发件人”和“收件人”的功能是什么?,smtp,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: Ca

我正在尝试理解使用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
HELO yourhost.yourdomain.edu
邮寄地址:
RCPT至:
RCPT至:
资料
日期:1998年11月30日星期日
发件人:卡罗尔
致:
复写的副本:
主题:更新
迈克:辛迪的脚趾受伤了。鲍比去看电影了
棒球营。玛莎参加了啦啦队。
简戴了眼镜。彼得有身份危机。
格雷格和三个女孩约会,但不能
记住他们的名字。
.
退出
我感到困惑的是,我们一开始就已经有了从和RCPT到的邮件,为什么在数据部分又有FROM:,TO:,和Cc:?标题处的RCPT TO:和数据段处的TO:之间有什么区别?如果我们假设我们用这些命令成功地发送了邮件,那么输出会是什么呢?我是说接收者看到的是什么


谢谢

消息正文在协议的数据部分传输

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

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

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


实际传输不需要将消息格式化为任何特定形式。这是由接收系统验证的,以确保只有格式良好的邮件才可接受本地传递。

基本上:SMTP服务器(如Postfix)只对信封感兴趣(邮件发件人和收件人命令),邮件用户代理(如Thunderbird)只对邮件内容感兴趣(从:、到:和抄送标题)

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

信封中的反向路径表示出现问题时发送跳转消息的位置。它可能与发件人标头匹配,也可能不匹配。例如,秘书以其上司的名义发送邮件。反向路径将包含秘书的电子邮件地址,发件人标头将包含上司的姓名和邮件地址。这两种方式也有所不同在邮件列表中使用ent,正如Pekka所写

正向路径(RCPT至参数),是实际的目的地。SMTP服务器对是否必须将邮件发送给某人不感兴趣,因为他在收件人列表中,或者因为他在te Cc列表中。对于密件抄送地址,邮件内容中自然没有密件抄送头!毕竟它是盲副本。但密件抄送收件人被列为转发路径在RCPT-TO命令中,因此SMTP服务器将知道它们,而用户不会知道