天道酬勤,学无止境

电子邮件 X 标头的最大大小(Maximum size of email X-Headers)

问题

我们正在考虑将一些元数据粘贴到电子邮件的 X-Headers 中。 这些电子邮件供内部系统使用,并将托管在 Exchange 服务器上。

我们可以存储在 X-Header 中的数据量是否有最大大小?

是否有任何限制,例如特殊字符,我应该知道?

回答1

仅限美国 ASCII 字符。

这是由 RFC 822 定义的。

标准中对header body的长度没有限制,尽管有行长度限制,这对header name的长度施加了限制。

此规范对一行中的字符数有两个限制。 每行字符必须不超过 998 个字符,并且应该不超过 78 个字符,不包括 CRLF。

但是,您可以通过“折叠”将标题主体扩展到单行之外。 然后接收器“展开”线。

展开的报头字段没有长度限制,因此可以不确定地长。

标题名称不能折叠,因此标题名称不能超过行数限制。

请注意,即使标准对标头主体的总长度没有限制,但实际实现可能会人为地施加限制。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Maximum size of email X-Headers
    We are looking at sticking some metadata into the X-Headers of email messages. These emails are for consumption by internal systems, and will be hosted on an Exchange server. Is there a maximum size for the ammount of data that we can store in an X-Header? Are there any limitations, such as special characters, that I should know about?
  • Cookie的最大大小是多少?在每个网站的浏览器中可以存储多少个Cookie?(What is the maximum size of a cookie, and how many can be stored in a browser for each web site?)
    问题 我正在学习Cookie,并且在编写依赖Cookie来存储状态的Web应用程序时不知道浏览器是否支持。 对于每个域/网站,可以向浏览器发送多少个cookie,大小如何? 如果发送并存储了多个cookie,是否会影响性能? 回答1 首先,我建议您不要担心这个问题。 有足够的空间将大量标识符序列化到。 其次,它不是通过web-server存储的,而是按web-domain存储的,例如www.google.com而不是服务于Google域的100台不同的物理服务器。 第三,如果您确实要担心,请知道有两个可能的cookie标头。 这些Cookie标头的大小由浏览器软件限制确定。 设计讨论 您不希望使用Cookie标头发送有关客户端会话的详细信息。 例如,如果要构建电子邮件前端,请不要尝试将客户端输入的电子邮件填充到Cookie中。 取而代之的是,您将向客户端发送代表其身份+会话的cookie:您将根据该身份存储所有会话数据。 您可以为每个cookie标头存储数十个标识符(4–16字节),并且最多只需要其中4个。 Cookies数据(作为整数)倾向于被编码为base64,这会增加字节数。 表现 您的浏览器将过多的标头发送到Web服务器。 Cookie只是另外100-1000个字节(大多数接近100个字节)。 在这两种极端情况下,将它们发送到Web服务器只需要花费一小部分时间-当然
  • 最大附件大小邮件服务(Maximum Attachment Size Mail Services)
    问题 所以我制作了这个 php 脚本(使用 PHPMailer)来收集潜在客户并发送带有 PDF 文件作为附件的自动邮件。 问题是脚本适用于小文件。 但是客户让我发送一个大小为 24,139 KB 的 PDF 文件。 所以我将memory_limit增加到 128M,因为内存较早耗尽(64M 之前)。 该脚本现在可以正常工作而没有错误,但我没有收到任何包含这个大文件的邮件 Gmail、Yahoo 等邮件提供商是否会阻止大附件? 如果是这样,有人可以告诉我最大尺寸是多少,以便我可以要求我的客户限制 PDF 大小 任何帮助? 夏兰 回答1 雅虎:您可以使用雅虎邮箱发送和接收最大 25MB 的电子邮件。 [1] Gmail:附件大小限制。 您可以发送最大为 25 兆字节 (MB) 的消息。 [2] Hotmail/Outlook:10 MB [3] Gmail 包含完整的邮件大小。 [1] https://help.yahoo.com/kb/message-size-limit-sln5673.html [2] https://support.google.com/mail/answer/6584?hl=en [3] http://answers.microsoft.com/en-us/windowslive/forum/email/what-is-hotmails-attachment
  • 在构造ExtendedPropertyDefinition时应该使用GUID或DefaultExtendedPropertySet.PublicStrings吗?(Should I use GUID or DefaultExtendedPropertySet.PublicStrings while constructing ExtendedPropertyDefinition?)
    问题 我正在使用EWS Managed API 1.2和Exchange Server 2007开发C#.NET Framework 4.5 Windows Form应用程序,该应用程序执行某种形式的邮件同步。 现在,我正在处理扩展属性,我想澄清一些事情: Q1。 DefaultExtendedPropertySet类的用途是什么? MSDN说:“定义扩展属性的默认集合。” 仅仅是对扩展属性进行分组吗? 如果是,为什么首先在那儿分组? 我们是否有任何Ews API方法可以获取属于同一项目组的所有扩展属性的值? Q2。 我无法决定在构造ExtendedPropertyDefinition应该使用自定义GUID还是DefaultExtendedPropertySet.PublicStrings : var MyXProp = new ExtendedPropertyDefinition( DefaultExtendedPropertySet.PublicStrings, "MyXProp", MapiPropertyType.String); 或者 Guid MyPropertySetId = new Guid("{C11FF724-AA03-4555-9952-FA248A11C3E}"); var extendedPropertyDefinition = new
  • JWT令牌的最大大小是多少?(What is the maximum size of JWT token?)
    问题 我需要知道的最大长度 JSON Web令牌(JWT) 在规格中,没有关于它的信息。 可能是,长度没有限制吗? 回答1 如您所说,在RFC7519(https://tools.ietf.org/html/rfc7519)或与JWS或JWE相关的其他RFC中没有定义最大长度。 如果使用JSON序列化格式或JSON扁平化序列化格式,则没有限制,也没有理由定义限制。 但是,如果您使用JSON Compact Serialized格式(最常用的格式),则必须记住,它应尽可能短,因为它主要用于Web上下文。 您应该避免使用4kb的JWT。 注意仅存储有用的声明和标头信息。 回答2 我也一直试图找到这个。 我会说-尝试确保它在7kb以下。 尽管JWT在规范(http://www.rfc-editor.org/rfc/rfc7519.txt)中没有定义上限,但我们确实有一些操作上的限制。 由于JWT包含在HTTP标头中,因此大多数当前服务器的上限(SO:http标头值的最大值)为8K。 因为这包括所有<8kb的请求标头,而7kb为其他标头提供了合理的空间。 达到此限制的最大风险是cookie(在标头中发送,并且可能变大)。 由于已加密并以base64加密,因此原始json字符串至少浪费了33%,因此请检查最终加密令牌的长度。 最后一点-代理和其他网络设备可能会在此过程中施加任意限制
  • 如何在 RichFaces 4 fileUpload 组件中显示有关最大文件大小限制的消息(How to display message about maximum file size restriction in RichFaces 4 fileUpload component)
    问题 我已经使用 RichFaces 4.3 实现了文件上传。 文件上传工作正常,有关文件类型的警报工作正常,但有关最大文件大小限制的警报无效。 文件上传代码: <rich:fileUpload id="bannerUpload" fileUploadListener="#{bean.bannerListener}" acceptedTypes="png, gif, jpg, jpeg" ontyperejected="alert('#{msg.bannerFormatRestriction}');" maxFilesQuantity="1" sizeExceededLabel="File size is restricted. Max allowed size is 1 MB." serverErrorLabel="File was not uploaded. Please try again." addLabel="Select image for banner"> </rich:fileUpload> 设置上下文参数并限制工作。 但不显示警报消息。 任何建议表示赞赏。 更新 消息问题与fileupload.js.jsf line 213有关。 Firebug 中的错误消息: Load denied by X-Frame-Options: ...?rf_fu_uid=
  • MIME Con​​tent-Type标头字段的最大长度?(Maximum length of a MIME Content-Type header field?)
    问题 我正在为数据库表设计架构,该表将包含电子邮件附件的详细信息-它们的大小(以字节为单位),文件名和内容类型(即“图像/ jpg”,“音频/ mp3”等)。 有人知道我期望内容类型的最大长度吗? 回答1 希望我没有看错,但看起来长度最大为127/127或255 。 RFC 4288在4.2(第6页)中有一个参考: Type and subtype names MUST conform to the following ABNF: type-name = reg-name subtype-name = reg-name reg-name = 1*127reg-name-chars reg-name-chars = ALPHA / DIGIT / "!" / "#" / "$" / "&" / "." / "+" / "-" / "^" / "_" 对我来说,尚不清楚+后缀是否可以添加到127之后,但似乎不行。 回答2 在最新的标准RFC 6838中,已过时的RFC4288中有以下声明。 “还请注意,尽管此语法允许最多127个字符的名称,但实现限制可能会使此类长名称成为问题。因此, <type-name>和<subtype-name>应该限制​​为64个字符。” 64 + 1 + 64 = 129。 但是我怀疑标准应该是63 + 1 + 63 = 127。 链接:https:/
  • Imail架设的邮件服务器(552 Message size exceeds fixed maximum message size)
    Imail架设的邮件服务器(552 Message size exceeds fixed maximum message size) Imail架设的邮件服务器:使用FOXMAIL构建客户端时出现以下信息:SMTP Server reply: 552 Message size exceeds fixed maximum message size;解决方法是什么呢? 解决方案: 退信的原因及解决方法1、邮件地址错误如果退信原因中有如下信息之一,请检查收信人的邮件地址是否有误。550 <...User">[email]xxx@xxx.xxx.xx.xx[/email]>...User unknow550 Requested action not taken:mailbox unavailable550.5.1.1 <[email]xxx@xxx.xxx.xx.xx[/email]> is not a valid mailboxSorry, no mailbox here by that name550 Invalid recipient <[email]xxx@xxx.xxx.xx.xx[/email]>[email]xxx@xxx.xxx.xx.xx[/email](user not found) 如果邮件地址是正确的,那可能对方的这个电子邮件信箱已经不再使用了。为了确定
  • 为什么ArrayList的最大数组大小为Integer.MAX_VALUE-8?(Why the maximum array size of ArrayList is Integer.MAX_VALUE - 8?)
    问题 我正在研究ArrayList Java 8文档。 我知道最大数组大小定义为Integer.MAX_VALUE - 8表示2 ^ 31 – 8 = 2147483639 。 然后,我集中讨论了为什么要减去8或why not less than 8减去why not less than 8或why not less than 8 more than 8 ? /** * The maximum size of array to allocate. * Some VMs reserve some header words in an array. * Attempts to allocate larger arrays may result in * OutOfMemoryError: Requested array size exceeds VM limit */ private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8; 我得到了一些相关的答案,但是没有实现我的目标。 Java数组有最大大小吗? 列表最多可以容纳多少数据为什么我不能创建大尺寸的数组? 有人给出了一些逻辑,按照文档"Some VMs reserve some header words in an array" 。 因此,对于标题字,减去8。
  • 标头> POST_MAX_SIZE时,$ _ POST数据返回空($_POST data returns empty when headers are > POST_MAX_SIZE)
    问题 希望这里有人可以回答我的问题。 我有一个基本表格,其中包含简单的字段,例如姓名,电话号码,电子邮件地址等以及1个文件上传字段。 我试图在脚本中添加一些验证,以检测文件是否太大,然后拒绝用户返回表单以选择/上传较小的文件。 我的问题是,如果用户选择的文件大于我的验证文件大小规则且大于php.ini POST_MAX_SIZE / UPLOAD_MAX_FILESIZE并推送提交,则PHP似乎会尝试处理表单,仅在POST_MAX_SIZE设置上失败后再清除整个$ _POST数组,不返回任何内容。 有没有解决的办法? 当然,如果有人上传的内容大于php.ini中配置的最大大小,那么您仍然可以获取其余的$ _POST数据??? 这是我的代码。 <?php function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen(
  • sendto的最大缓冲区长度?(Maximum buffer length for sendto?)
    问题 如何获得可以作为UDP端口打开的套接字传递给sendto(..)调用的最大字节数? 回答1 使用getsockopt()。 该站点对您可以检索的用法和选项进行了很好的分类。 在Windows中,您可以执行以下操作: int optlen = sizeof(int); int optval; getsockopt(socket, SOL_SOCKET, SO_MAX_MSG_SIZE, (int *)&optval, &optlen); 对于Linux,根据UDP手册页,内核将使用MTU发现(它将检查此处和目标之间的最大UDP数据包大小,然后选择该值),或者如果MTU发现已关闭,则它将设置接口MTU的最大大小,并对更大的片段进行分段。 如果通过以太网发送,则典型的MTU为1500字节。 回答2 在Mac OS X上,发送(SO_SNDBUF)和接收(SO_RCVBUF)的值不同。 这是发送缓冲区的大小(man getsockopt): getsockopt(sock, SOL_SOCKET, SO_SNDBUF, (int *)&optval, &optlen); 尝试发送更大的消息(在通过本地环回发送的UDP的Leopard 9216八位字节上)将导致“消息过长/ EMSGSIZE”。 回答3 由于UDP不是面向连接的,因此无法指示两个数据包属于同一数据包。 结果
  • http标头值的最大值?(Maximum on http header values?)
    问题 HTTP标头是否存在可接受的最大允许大小? 如果是这样,那是什么? 如果不是,这是服务器特定的还是允许任何大小的标头的公认标准? 回答1 不,HTTP没有定义任何限制。 但是,大多数Web服务器确实会限制它们接受的标头的大小。 例如,在Apache中,默认限制为8KB,在IIS中,默认限制为16K。 如果标头大小超过该限制,服务器将返回413 Entity Too Large错误。 相关问题:用户代理字符串可以达到多大? 回答2 就像vartec上面说的那样,HTTP规范没有定义限制,但是默认情况下许多服务器都做了限制。 实际上,这意味着下限是8K 。 对于大多数服务器,此限制适用于请求行和所有标头字段的总和(因此,请确保您的Cookie简短)。 Apache 2.0、2.2: 8K nginx: 4K -8K IIS: 8K -16K版本不同 Tomcat:因版本而异,从8K -48K(?!) 值得注意的是,nginx默认使用系统页面大小,在大多数系统上为4K。 您可以使用以下微型程序进行检查: pagesize.c: #include <unistd.h> #include <stdio.h> int main() { int pageSize = getpagesize(); printf("Page size on your system = %i bytes\n"
  • 为了获得最大吞吐量,UDP数据包的最佳大小是多少?(What is the optimal size of a UDP packet for maximum throughput?)
    问题 我需要通过可能有损的网络将数据包从一台主机发送到另一台主机。 为了最小化数据包延迟,我不考虑TCP / IP。 但是,我希望最大化UDP的吞吐量。 使用的UDP数据包的最佳大小应该是多少? 这是我的一些注意事项: 网络中交换机的MTU大小为1500。如果使用较大的数据包(例如8192),则会导致碎片。 丢失一个片段会导致整个数据包丢失,对吗? 如果使用较小的数据包,则会产生UDP和IP标头的开销如果我使用的是非常大的数据包,我可以使用的最大数据包是什么? 我读到最大的数据报大小是65507。我应该使用什么缓冲区大小才能发送这样的大小? 那会有助于提高我的吞吐量吗? 常见操作系统(例如Windows,Linux等)支持的典型最大数据报大小是多少? 更新: 数据的某些接收器是未实现TCP / IP堆栈的嵌入式系统。 我知道这个地方到处都是热衷于使用现有功能的人。 但是我希望有比仅专注于MTU更好的答案。 回答1 替代答案:小心不要重新发明轮子。 TCP是数十年网络经验的产物。 每件事或几乎每件事都会产生共鸣。 它具有大多数人不常考虑的几种算法(拥塞控制,重传,缓冲区管理,处理重排序的数据包等)。 如果您开始重新实现所有TCP算法,则可能会冒(以格林斯潘的第十条规则为准)“临时的,非正式指定的,漏洞百出的,缓慢的TCP实现”的结尾。 如果您尚未这样做,那么最好查看一下TCP /
  • JPEG元数据的最大大小是多少?(What is the maximum size of JPEG metadata?)
    问题 理论上可以合并到JPEG文件中的元数据(EXIF等)的最大数量吗? 我想分配一个缓冲区,以确保足以容纳任何JPEG图像的元数据,而不必自己解析它。 回答1 没有理论上的最大值,因为某些APP标记可以多次使用(例如,APP1既用于EXIF标头,又用于XMP块)。 而且,没有什么可以防止多个注释块。 在实践中,最常见的是导致大标头的一种,具体来说就是APP2标记用于存储图像的ICC颜色配置文件。 由于某些复杂的颜色配置文件可能为数兆字节,因此实际上它会被分成许多APP2块(因为每个APP块都有一个16位的寻址限制)。 回答2 每个APPN数据区域的长度字段为2个字节,因此65536将容纳最大的长度。 如果您只是担心EXIF数据,那会少一些。 http://www.fileformat.info/format/jpeg/egff.htm一个文件中最多包含16个不同的APPN标记。 我不认为它们可以重复,因此16 * 65K应该是理论最大值。 回答3 维基百科指出: Exif元数据在JPEG图像中的大小限制为64 kB ,因为根据规范,此信息必须包含在单个JPEG APP1段中。
  • http.request中的nodeJS最大标头大小(nodeJS max header size in http.request)
    问题 使用nodeJS v0.10.28,http请求中的标头内容的大小/长度是否受到限制? 让我解释: 我需要使用第三方供应商提供的休息服务。 返回给我的数据在请求的标头中,正文大部分为空(120个左右字符)。 标头中的数据量从几个字符到几个100kb不等。 var https = require('https'); var httpHeaders = { Authorization: 'Basic ' + new Buffer(user + ':' + psw).toString('base64'), accept: '*/*', 'Content-Type': 'text/plain; charset=utf-8' }; var options = { host: "www.website.com", port: 8080, path: "/" , method: 'GET', headers: httpHeaders, rejectUnauthorized: false, requestCert: true, agent: false }; https.request(options, function(res) { res.setEncoding('utf8'); if (res.statusCode == 200) { var json = res.headers[
  • TCP连接的最大数据包大小(Maximum packet size for a TCP connection)
    问题 TCP连接的最大数据包大小是多少?如何获得最大数据包大小? 回答1 TCP数据包大小的绝对限制为64K(65535字节),但是实际上,这远远超出了您将看到的任何数据包的大小,因为较低的层(例如,以太网)具有较低的数据包大小。 例如,以太网的MTU(最大传输单元)为1500字节。 某些类型的网络(例如令牌环)的MTU较大,某些类型的MTU较小,但是每种物理技术的值都是固定的。 回答2 这是一个很好的问题,实际上我在工作中经常遇到这个问题。 有很多“技术上正确”的答案,例如65k和1500。我已经做了很多工作来编写网络接口,并且使用65k很愚蠢,而1500也会给您带来麻烦。 我的工作是在许多不同的硬件/平台/路由器上进行的,老实说,我的起点是1400字节。 如果您需要的数字超过1400,则可以开始逐步提高,可能会达到1450,有时甚至达到1480'ish? 如果您需要的更多,那么您当然需要分成2个数据包,其中有几种显而易见的方法。 问题在于,您正在谈论创建数据包并通过TCP写入数据包,但是当然要添加标头数据,依此类推,因此您有“负担”,使您的数据量达到1500或更高。许多硬件都有较低的限制。 如果您“按一下”,则可能会发生一些非常奇怪的事情。 截断的数据,很明显,或者我很少见到的丢失的数据。 损坏的数据也很少,但确实会发生。 回答3 在应用程序级别
  • How do i specify X-Headers for outgoing emails in Microsoft Outlook 2010
    I need to include custom headers in my outgoing emails. I'm using Microsoft Outlook 2010 and SendGrid SMTP server. In particular, i want to specify a unique tracking ID on each mail using SendGrid's X-SMTPAPI header. My Approach: I am build an Outlook Add-In that will intercept outgoing emails and add the required headers Outlook.Application object has an ItemSend event that serves this purpose. How do i use Mail.PropertyAccessor.SetProperty to set the custom headers? I am unable to find the correct header identifier that points to x-headers, or that will allow me set custom headers. Your help
  • 超过最大电子邮件地址大小(Exceeding Max Email Address Sizes)
    问题 RFC 标准称最大电子邮件大小为 320(根据 http://www.dominicsayers.com/isemail/,实际上为 256)。 是否有任何可以想象的场景,电子邮件地址最终可能会比这更大? 回答1 阅读:http://www.eph.co.uk/resources/email-address-length-faq/ 结果是您应该使用 254 个字符来存储电子邮件地址,因为这是 SMTP 中允许的最大值交易。 这个在RFC5321中有规定(你的文章是这么说的,其实我的也是引用的),是权威的。 回答2 老实说,即使有人拥有超过 256/320 个字符的有效电子邮件地址,使用起来也会很痛苦。 任何使用的电子邮件地址甚至是它的一半(128 个字符)的人都需要修剪! 尽管从好的方面来说,他们可能不会收到垃圾邮件! 例如,这两个都将无法使用: //long domain joe.shmoe
  • 互联网上最大的安全UDP数据包大小是多少(What is the largest Safe UDP Packet Size on the Internet)
    问题 我已经阅读了许多有关UDP数据包大小的文章,但无法就正确的内容得出结论。 许多服务将最大UDP数据包限制为512字节(例如dns) 给定Internet上的最小MTU为576,IPv4标头的大小为20个字节,而UDP标头的大小为8个字节。 剩下548个字节可用于用户数据 我能使用不超过548个大小的数据包而不会造成数据包碎片吗? 还是DNS的创建者知道一些东西,以及为什么他们将它限制为512字节。 我可以安全地超过548个字节吗? 回答1 的确,典型的IPv4标头是20个字节,而UDP标头是8个字节。 但是,可以包含IP选项,这些选项可以将IP标头的大小增加到60个字节。 另外,有时中间节点有必要将数据报封装在另一个协议(例如IPsec(用于VPN等)中)内,以便将数据包路由到其目的地。 因此,如果您不知道特定网络路径上的MTU,则最好为可能未预料到的其他标头信息留出合理的余量。 通常认为可以使用512字节的UDP有效负载来做到这一点,尽管即使这样也不能为最大大小的IP标头留下足够的空间。 回答2 UDP数据包最大大小的理论限制(在Windows上)为65507字节。 在此处记录: 正确的最大UDP消息大小为65507,由以下公式确定:0xffff-(sizeof(IP标头)+ sizeof(UDP标头))= 65535-(20 + 8)= 65507 话虽这么说
  • 如何设置PHP cURL下载的最大大小限制?(How to set a maximum size limit to PHP cURL downloads?)
    问题 PHP cURL下载是否有最大大小限制? IE。 传输达到特定文件限制时,cURL会退出吗? curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); 它是用于下载远程图像的站点。 我想确保当cURL达到一定限制时将停止。 我的研究还显示getimagesize()下载图像,以返回其大小,因此这不是一个选择。 回答1 我还有一个答案,可以更好地解决这种情况,离开这里后代。 CURLOPT_WRITEFUNCTION对此很有好处,但CURLOPT_PROGRESSFUNCTION最好。 // We need progress updates to break the connection mid-way curl_setopt($cURL_Handle, CURLOPT_BUFFERSIZE, 128); // more progress info curl_setopt($cURL_Handle, CURLOPT_NOPROGRESS, false); curl_setopt($cURL_Handle, CURLOPT