电子邮件的最小大小(以字节为单位)

时间:2019-04-20 05:55:11

标签: email smtp byte imap pop3

有效电子邮件的最小字节数是多少(不特定于编程语言)

  • 独立的原始文本(不包含附件,主题和1个字节的正文)
  • 通过SMTP发送(协议开销+电子邮件大小)
  • 通过POP3接收(协议开销+电子邮件大小)
  • 通过IMAP接收(协议开销+电子邮件大小)
  • mime multipart是第一种情况,但具有两个用于text / plain和text / html的主体,以及一个带有1字节文件的附件主体

2 个答案:

答案 0 :(得分:1)

因此,我只看了一个教程,回答了有关基本电子邮件的格式/结构的部分问题。我从以下命令开始

$ nc -C {smtp-server-fqdn} 25

这是对话的转储{已省略了秘密的参数设置}

220 {smtp-server-fqdn} ESMTP
EHLO {yourdomain.ext}
{smtp-server-fqdn}
250-PIPELINING
250-SIZE 40960000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250 8BITMIME
HELO {yourdomain.ext}
250 {smtp-server-fqdn}
AUTH LOGIN
334 VXNlcm5hbWU6
{username|base64}
334 UGFzc3dvcmQ6
{password|base64}
235 2.7.0 Authentication successful
MAIL FROM: <someone@sender-fqdn>
250 2.1.0 Ok
RCPT TO: <someone@recipient-fqdn>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: "{VanitySenderName}" <someone@sender-fqdn>
To: "{VanityRecipientName}" <someone@recipient-fqdn>
Subject: {subject}
Date: {date}
{message body}
.
250 2.0.0 Ok: queued as {identifier}
QUIT
221 2.0.0 Bye
<ctrl>+<c>

所以要把它分解

电子邮件有效负载本身(在DATA之后到.之后的行)至少需要75个字节

From: <a@b>
To: <a@b>
Subject: c
Date: Sat, 20 Apr 2019 13:25:00 +0100
d
.

老实说,这几乎不是有效的电子邮件。根据{{​​3}},它确实有两个最小的附加字段,分别是从,到,主题,日期和正文。如果缺少任何这些,我想您的电子邮件提供商应该拒绝它们。

我发送给我的真实电子邮件和提供者(dreamhost)进行测试的实际正文为151字节,因为电子邮件是真实的,并且域长于字符。

更有趣的是,信封将其增加到468字节(对于带有auth的真实电子邮件,不包括服务器响应),但从理论上讲可能会更小(146字节,具有单个字符域,没有扩展名,仅适合实验室+内部使用)

EHLO c
HELO c
AUTH LOGIN
a
b
MAIL FROM: <a@b>
RCPT TO: <a@b>
DATA
From: <a@b>
To: <a@b>
Subject: c
Date: Sat, 20 Apr 2019 13:25:00 +0100
d
.
QUIT

它小于1KB,因此适合嵌入式应用,但也缺少传输开销,并且缺少一些功能,例如多部分支持。

使用此功能所需要做的就是为自己配备一个套接字库以打开连接,base64编码器(用于纯用户+密码),日期字符串生成实用程序和基本的命令行技能。

这绝不是一个完整的答案,但是它回答了两种情况,并为了解初学者和掌握技术提供了必要的警告。

答案 1 :(得分:0)

这似乎不是编程问题,对吗?可能需要澄清,否则将被关闭。

每种情况下为数十字节。最小有效消息的40-45字节,带有附件的字节数接近100。有些取决于您的计算方式,例如当邮件为50个字节时,是否包括IMAP / POP登录过程的字节就很重要。

Date: 0:00:00 1 May 2019 -0000
From: a@l.is